在同一个应用程序中使用MongoDB和MySQL(跨数据库连接?)

时间:2011-09-03 09:20:48

标签: mysql mongodb

基本上,我有大约25个MySQL表,我需要将3切换到MongoDB。其他一些我可以切换,但我真的不需要它。然后是一个约15个桌子的巨大关系链。其中4-5将受益于MongoDB,但大约6个我更喜欢在MySQL中(合理的信息必须是稳定的)。

当他们与MySQL中的其他人建立关系时,将部分表格切换为mongodb是个好主意吗? 切换后我想我必须用mongoDB _id“加入”它们,这个好设计吗?

或者我应该只切换我绝对需要的3个表并将其余部分保留在MySQL中吗?

或者我应该将所有内容移至MongoDB?它有多安全?评论有点令人困惑 - 有人说MongoDB 可以丢失一些数据,有人说它和任何RDBMS一样安全。

2 个答案:

答案 0 :(得分:10)

是的,这是一种有效的方法。将规范化/事务性数据保存在关系数据库中并使用像MongoDB这样的NoSQL数据库来处理其他类型的数据并不罕见。

一个例子可能是电子商务网站。您可以选择在mySQL中存储用户和支付交易,但在MongoDB群集中保留产品库存。

通过在mySQL和Mongo之间拆分数据,您将失去强制参照完整性的能力,但这不一定是问题,具体取决于您的数据。您仍然可以存储来自mySQL的Mongo文档的引用,您将无法在数据库级别强制执行这些关系。

我首先要迁移前3个表,然后如果一切顺利,请考虑移动其他表。但是如果你希望其他数据保留在mySQL中,那么混合方法绝对没有错。

答案 1 :(得分:3)

我建议您使用正确的工具来完成工作。 MongoDB有一些擅长的用例。 MySQL非常适合需要事务完整性的地方。如果您不需要MySQL的好处,那么将所有内容移动到单个数据存储区可以让您的生活更轻松。如果你需要处理在MongoDB中无法很好地处理的事务完整性,那么你只会让你的生活更加艰难。