【问题标题】:MongoDB as main datastore, MySQL for transactions onlyMongoDB 作为主要数据存储,MySQL 仅用于事务
【发布时间】:2015-01-25 05:13:23
【问题描述】:

我很难找到有关如何解决此问题的良好信息来源。大多数搜索结果,无论是在 SO 上还是在外面,都会出现 MongoDB vs MySQL,而不是 MongoDB with MySQL。数据库设计并不是我真正的强项——我从未将任何类型的数据库部署到生产环境——我更喜欢 MongoDB 仅仅是因为它更容易学习和使用,而且我对它最为熟悉。因此,我的问题是,我将如何设置这种以 Node.js 为语言的环境,并且我想使用 MongoDB 作为主数据库,而 MySQL 仅用于事务,或者特别是在 MongoDB 中强制执行一致性和数据完整性数据库?

编辑:数据库活动将是级联删除操作的 1% 事务,删除不经常发生。另外 99% 的时间是我认为 MongoDB 非常适合的地方。

【问题讨论】:

  • 我在这里讨论 mongodb 中的事务:stackoverflow.com/a/21887489/68567
  • 我查看了您的链接,您的解决方案看起来很聪明。但这难道不是某种黑客行为并使用正确的工具——用于事务的 MySQL——更好的方法吗?
  • 您可能会争辩说,如果您需要交易,为什么要拆分您的数据存储?
  • 事务——级联删除——将仅占数据库活动的 1%,删除很少发生。另外 99% 的时间是 MongoDB 看起来很合适的时候。

标签: mysql mongodb database-design multiple-databases database


【解决方案1】:

您可能需要考虑在 MySQL 中使用 NoSQL 引擎以及符合 ACID 的传统 rdbms 引擎 InnoDB。见http://www.mysql.com/why-mysql/white-papers/guide-to-mysql-and-nosql-delivering-the-best-of-both-worlds/

【讨论】:

    【解决方案2】:

    MongoDB 4.0 将解决您在此处讨论的 1% 的场景 - 它将支持多文档 ACID 事务,包括级联删除。见https://docs.mongodb.com/manual/upcoming/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 2012-08-17
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      相关资源
      最近更新 更多