【发布时间】:2019-05-14 05:23:04
【问题描述】:
我一直在开发一个类似约会的应用程序,有点火种/大黄蜂。我一直在争论使用 Cassandra 或 MongoDB 的数据库。到目前为止,我只有 MS SQL、mysql 和 Unidata 的经验......由于可扩展性,我一直在研究 Cassandra 和 MongoDB,但我听说 Tinder 的 MongoDB 有问题,因此他们不得不打电话寻求帮助。即使不是这两个中的任何一个,您还有什么建议?学习 DB 对我来说不是问题,但我正在寻找性能和可扩展性。主要编程语言将是 C#(如果有帮助的话),最好我正在寻找在云中构建它(Azure Cosmos DB、aws dynamoDB 或类似语言)。由于可扩展性,我的想法是 NoSQL DB,但如果有充分的理由,我不会反对选择 RDBMS。
建议、cmets、想法?
【问题讨论】:
-
仅仅因为某个东西是 documentDB 或其 NoSQL 并不意味着它的快速或可扩展。如果您实现读/写副本,SQL 可以很好地扩展。之后,您可以开始实现缓存,您仍然拥有用于原子事务和存储的 sql server。以下面的例子/想法为例,假设您有数百万用户。当 x 登录时,检索 x 并存储在缓存中(例如 redis),x 所做的一切都存储在缓存中并写入数据库。当 X 注销或 x 有一段时间没有访问时,缓存失效并消失,直到他再次登录。
-
@Kris.J 添加副本,如果它不是异步副本,它会减慢您的插入/更新/删除查询。因为它必须首先提交到副本以完成 ACID。而且,如果您使用多种列进行全文搜索,则需要对这些列进行索引,这也会减慢您的写入/更新/删除查询。所以它并没有像你说的那样神奇地扩展。
-
@Emre Savcı,我知道,但除非副本位于远程位置,否则您不会使用异步副本。
-
也从来没有暗示它的神奇之处,只是人们认为它不能扩展。
标签: database mongodb performance cassandra scalability