我不明白为什么单独写和读比在一台服务器上写和读更好。
例如,我有一个mysql集群,它有三台机器: node1、node2、node3。
一种可能的架构是:
第二种可能的架构是:
在体系结构中,我们可以看到,对node1的写入压力很大,所以我更喜欢架构2。
此外,为什么mongodb分离对主节点的写入和对次要节点的读取。
发布于 2012-09-05 03:27:50
对于MySQL和MongoDB来说,这都是一个规模问题。在具有小数据集和低通信量的最简单的应用程序中,让所有的写和读都转到一台服务器上可以提供一个简单的体系结构。在具有低容量写入的非常高容量的读取应用程序中,一个复制到多个读取节点的单个写节点可以通过添加另一个节点来扩展您的读取。在一个高读写量的应用程序中,您可能会考虑分片(在MySQL中,您自己做,或者找到一个帮助工具),在mongodb中,您可以运行mongos来为您处理分片。切分将根据您定义的某个键将记录放在特定实例上。键将确定每个记录应该存储在哪个实例上。您可以想象,与单个服务器进行读写访问相比,分片管理起来要复杂得多。您是对的,即使在mongodb这样的情况下,一旦您定义了一个键(或者只使用默认键),就可以为您进行切分。
发布于 2012-09-05 19:41:31
MySQL集群还支持自动切分-默认情况下对主键进行散列,但是用户可以为自己的密钥提供更多的分发感知。集群中的每个节点都是主节点,内部负载平衡将在各个节点之间分配负载。
虽然级别很高,这里发布的简短演示介绍了在MySQL集群中分片的概念:id=11464419
https://stackoverflow.com/questions/12273844
复制相似问题