database - 如果我想要分布式多主数据库,我有哪些选择?

标签 database rdbms fault-tolerance key-value-store distributed-database

我将构建一个系统,以减少单点故障,并且我需要一个数据库。是否有任何(免费的)关系数据库系统可以很好地处理多主机设置(即可以轻松添加和删除节点)或者使用 NoSQL 数据库更好?

据我所知,键值存储可以更好地处理这个问题。对于多主机(集群)设置,您推荐哪种数据库系统?

最佳答案

Mysql 的 NDB Cluster 将执行此操作。但它的设置远非易事,而且有很多陷阱。

而且,它的性能通常相当糟糕,而且它会将数据保存在内存中(是的,我知道它们听起来很矛盾)。

本质上,更新需要在整个集群中获取分布式锁(或者至少在保存这些表的存储节点组中)

这不容易管理,但您可以进行某种程度的热添加。

除非您需要非常快速的故障转移和一致性,否则我建议不要这样做。

我建议忽略多主机,并使用 HA MySQL 代替(例如使用 InnoDB),它易于设置并且在典型的 30 秒以下故障转移时间内运行良好。这是一个主从系统,其中从站甚至不能进行读取(但是您可以通过复制添加读从站,前提是您不需要它们完全是最新的)

关于database - 如果我想要分布式多主数据库,我有哪些选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621307/

相关文章:

rdbms - 在 CAP 定理中,缩放的关系数据库会落在什么地方?

sql - SQL更新/替换行,不影响某些列

quartz-scheduler - quartz 作业详细请求恢复

iphone - IOS5无法使用核心数据库

ruby-on-rails - rails 3 : Auto-populating a table upon new user creation with Devise

php - 存储在表中,Laravel

azure - 为什么 Azure 数据工厂中的某些容错设置被禁用?

iphone - 我的数据库数据在哪里(核心数据,iOS)

triggers - 从同一张表中触发选择

blockchain - 我们是否需要在许可的区 block 链网络中支持 PBFT 算法?