【问题标题】:Store everything in MongoDB or not? Use SQL alongside? (Eventual consistency)是否将所有内容存储在 MongoDB 中?同时使用 SQL? (最终一致性)
【发布时间】:2012-04-25 04:28:11
【问题描述】:

我和我的大学正在重新考虑使用 MongoDB 来存储我们应用程序的所有数据。有些人认为,由于 Mongo 在用户注册或更新他的个人资料(或类似但更重要的东西)时的最终一致性,因此不会立即看到结果,并且可能会让用户感到沮丧。

我很确定,除非我们拥有大量数据并且进行一些复制,否则我们不会看到最终一致性的影响。但我不确定。

有什么建议吗?仅使用 mongo 还是添加额外的 SQL 服务器来存储敏感数据?

【问题讨论】:

  • 如果获取最新数据很重要,您可以强制查询从 mongo 中的 master 中提取。

标签: sql-server mongodb eventual-consistency nosql


【解决方案1】:

MongoDB 不是最终一致的,但它具有异步复制。您可以避免读取旧值的风险,方法是不从从属设备读取(一个简单的连接标志),或者写入一个等待复制完成后再返回的标志。查看文档或 getLastError 命令以获取有关后者的所有详细信息。

将 MongoDB 用于您所描述的内容很好。

【讨论】:

    【解决方案2】:

    让我们先回答一个不同的问题:您需要 MongoDB 的特殊功能还是可以使用普通的旧关系数据存储?

    我无法回答那个问题(你可以)。

    如果答案是“否”,您可以将所有内容切换到 ACID SQL 数据库,而不必再担心此类问题。

    全面阐述 NoSQL 和 SQL 之间的权衡将超出此文本编辑器的限制。我建议您在网络上对此进行一些研究。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 2015-06-05
      • 2012-11-17
      相关资源
      最近更新 更多