结合使用MySQL和MongoDB有意义吗?我尝试做的基本上是使用MySQl作为“原始数据备份”类型的东西,所有数据都存储在那里,而不是从那里读取。
数据也同时存储在MongoDB中,并且只从mongoDB读取数据,因为我不必进行连接和其他操作。
例如,假设在构建NetFlix时
在mysql中,我有一个用于评论和电影的表格。然后,当在mySQL中创建注释时,我只需将其添加到表中,然后在MongoDB中更新movies文档以保存此新注释。
然后,当我想获取电影和评论时,我只需从mongoDb抓取文档。
我主要关心的是mongodb与MySQL的“新”比较。如果在Mongo中发生了意想不到的事情,我们有一个MySQL备份,可以让应用程序快速回退到mysql和memcached。
发布于 2010-10-14 16:21:22
从理论上讲,这听起来像是一个好主意,但有很多事情你必须考虑到。这将使你的应用程序比你想象的要复杂得多。我给你举几个例子。
两种不同的系统
您将处理两个不同的系统,每个系统都有自己的行为。这些不同的行为将使保持所有内容同步变得相当困难。
您必须在应用程序代码中处理其中一些场景。这就引出了我的下一点。
两个数据访问层
您的应用程序需要与两个外部系统交互,因此您需要编写两个数据访问层。
maintained.
级联故障的可能性
如果MongoDB失败,应用程序将回退到MySQL和memcached。但在这一点上,memcached将是空。因此,在MongoDB失败后,每个请求都会立即命中数据库。如果你有一个高流量的网站,这也可以很容易地关闭MySQL。
忠告之词
找出你认为MongoDB可能会发生“意想不到的事情”的所有可能的方式。然后为每个单独的案例使用最简单的解决方案。例如,如果您担心的是数据丢失,请使用replication。如果是数据损坏,请使用delayed replication。
https://stackoverflow.com/questions/3930253
复制相似问题