MongoDB和MySQL如何搭配使用?

在实际业务中,MongoDB和MySQL如何搭配使用?什么样的场景下适合写入MongoDB?比如做一个待办事项的应用,有当前待办、分类、排序、历史事项…
关注者
288
被浏览
100,544

10 个回答

这其实就是NoSQL和SQL的应用场景的区别。另外现在貌似pgSQL也支持JSON了,似乎性能可以喝MongoDB媲美。

MongoDB这种文档型的NoSQL基本可以看成一个键值对存储,如果你的业务总是能知道key,那么MongoDB是一个好选择,比如游戏的玩家信息(因为总是知道玩家ID,而且玩家ID是适合做主键的),就是非常典型的NoSQL的应用场景。另外一点就是可以存储多种数据类型,比如有的时候我们想存一个列表,在MySQL中就只能拼成字符串来存,但是NoSQL本身就支持列表,所以可以尽可能的保持数据结构。

SQL的强项还是关系模型了,在不知道主键的情况下,查询的灵活性和效率都能得到很好地优化,适合网站这类的应用,因为很难提前确定要根据某个条件进行查询,关系模型的表达能力是很强的。

搭配的话,就是传统业务很成熟稳定的框架该用MySQL还用MySQL,如果是有大量的键值对数据需要随机存取,可以将这些数据放在MongoDB中。

云计算架构23
2048 播放 · 9 赞同

Mysql使用高可用集群(MMM)或Mysql分布式集群(mysql cluster),MongoDB也架构高可用集群(Mongodb replica set), 把一些可临时存储的数据存入MongoDB中,以增加高并发高吞吐量,把一些必需要持久的数据存入Mysql,当然这个数据怎么拆分要根据具体的业务需求。