因为大家都说不推荐master-master。
但是如果你仔细想想... 1 个写入服务器是远远不够的!
那么,您将如何设置它(高级,而非教程级别)以使其运行良好?
答案1
当我思考这个问题时,我意识到一个可写服务器就足够了。HA 负责可用性,而分片负责容量。
答案2
即使您有某种需要进行数万亿次写入的荒谬应用程序,您最好还是通过某种循环接口提供一些不相连的服务器,然后在更受控制的环境中合并数据...当您受到这样的重击时,几乎没有办法确保复制。
但最终,与读取相比,大多数数据库应用程序不会执行很多写入操作。
答案3
我想你会发现你的大多数问题都可以通过其他方式解决:例如
SELECTS 排队在 UPDATES 后面,耗时较长:
- 切换到 InnoDB
选择太多,一台机器无法处理:
- 选择主服务器 -> 多个从服务器的设置。这样维护起来更容易,你只需要修改应用程序以写入一个数据库并从另一个数据库中选择。
答案4
鉴于世界上一些最大的网站都运行在单个主实例上,您的前提是有缺陷的。解决问题的方法是插入一个缓存层(memcached 用于非持久性数据,CouchDB 等用于持久性数据),并尽量避免使用数据库。实施异步流程将数据插入数据库,并意识到用户很少需要查看最新的数据……落后几秒或几分钟通常没问题。分片和多主设置只是解决真正加快系统速度的架构变化的灵丹妙药。