我将构建一个系统,以减少单点故障,并且我需要一个数据库。是否有任何(免费的)关系数据库系统可以很好地处理多主机设置(即可以轻松添加和删除节点)或者使用 NoSQL 数据库更好?
据我所知,键值存储可以更好地处理这个问题。对于多主机(集群)设置,您推荐哪种数据库系统?
最佳答案
Mysql 的 NDB Cluster 将执行此操作。但它的设置远非易事,而且有很多陷阱。
而且,它的性能通常相当糟糕,而且它会将数据保存在内存中(是的,我知道它们听起来很矛盾)。
本质上,更新需要在整个集群中获取分布式锁(或者至少在保存这些表的存储节点组中)
这不容易管理,但您可以进行某种程度的热添加。
除非您需要非常快速的故障转移和一致性,否则我建议不要这样做。
我建议忽略多主机,并使用 HA MySQL 代替(例如使用 InnoDB),它易于设置并且在典型的 30 秒以下故障转移时间内运行良好。这是一个主从系统,其中从站甚至不能进行读取(但是您可以通过复制添加读从站,前提是您不需要它们完全是最新的)
关于database - 如果我想要分布式多主数据库,我有哪些选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621307/