Cyp*_*ian 5 mysql replication aggregate
我有一个 MySQL 数据库服务器,它接受大量移动应用程序数据进行分析。我想知道出于优化原因,以下架构是否有意义且合适:
我想将 MySQL 数据库服务器拆分为两个单独的服务器,如下所示:
关系黑白服务器将是主-主。
如果我的推理是正确的,你能解释一下我如何准确地做到这一点吗?
选项#1:使用主/主
您只能在一种情况下使用 Master/Master:如果您写入 ServerA 上的数据库,请勿向 ServerB 发出写入,反之亦然。通过这种方式,您可以干净地拆分写入。如果您依赖于通过具有 AUTO_INCRMENT 属性的 ID 查找行,那么在 Master/Master 中拆分对同一数据库的写入可能会有点笨拙。如果您通过从服务器到服务器都不会改变的唯一键(例如社会保障号、驾驶执照、HashKey 等)查找行,则在 Master/Master 中的两个 Master 之间拆分写入同一个 DB 是没问题的。
选项#2:使用从属服务器
@DTest 已经描述了这一点,所以我不会在他的建议中添加任何额外内容(他为此获得+1)。
选项#3:在从属服务器中使用 MyISAM
当使用未用作其他服务器的主服务器的只读从服务器时,您应该对该 MySQL 实例中的数据执行两件事
这应该会使读取速度提高 20%。
选项#4:使用 MySQL 5.5 进行半同步复制
MySQL 5.5之前,当一个Master有多个Slave时,SQL语句在Slave之间的处理方式是这样的(以一个Master有两个Slave为例):
SQL语句是
在MySQL 5.5中,当一个Master有多个Slave时,这是使用半同步复制在Slave之间处理SQL语句的方式(示例将是一个Master有两个Slave):
SQL语句是
复制更加稳健,至少 1 个从站与主站的同步更加紧密。
| 归档时间: |
|
| 查看次数: |
2167 次 |
| 最近记录: |