Jig*_*ain 8 mysql replication performance
我不是一个“合格的”DBA,但是是的,我负责我们在社交应用程序中使用的我自己的数据库。
出于显而易见的原因,我最近在我的数据库上实施了主/从复制。
我想知道的是 MySQL 复制是否会破坏我的数据库的性能,因为对于在我的主数据库上写入的每个用户都会在从数据库上创建一个额外的写入(我可能在这里错了)。
我的奴隶和主人之间没有滞后。因此,复制几乎是瞬间完成的。
由于复制设置,Master 必须处理两件主要事情
Master 必须将每个完成的 SQL 事务写入二进制日志
当 Slave 连接时,Master 必须扮演交通警察。
如果一个忙碌的Master有Slaves Seconds_Behind_Master : 0,那简直太棒了。
如果这些指标中的任何一个变得明显,您可能需要做一些事情:
这是我关于设置复制拓扑的其他帖子
Aug 20, 2012:跨数据中心MySQL主从复制的最佳方案Aug 20, 2012:如何使用 MySQL Server 5.6 进行 GeoIP 复制?Jun 25, 2012: Mysql 数据库复制在不同的 vlan/subnet/another siteDec 19, 2011:设置主到多主复制的最佳方式Dec 17, 2011: 2台机器上的Mysql主-主复制拓扑Aug 18, 2011:使用 MySQL 复制,可以实现什么级别的弹性?Jun 01, 2011:我们可以在 MySQL 5.0 Replication 中做些什么来解决带宽问题?Mar 29, 2011: MySQL 高可用性、故障转移和具有延迟的复制简单回答你的问题,“不,复制不会扼杀你的主人的性能。”
与它必须做的所有其他事情相比,复制对 master 的影响通常非常小,因为 master 在复制环境中只需要完成两件重要的事情:
我不认为编写二进制日志是复制的成本,因为即使您不复制,也应该始终打开二进制日志记录。这是一个非常有价值的故障排除和恢复工具。
将复制事件发送到从站的成本也可以忽略不计,因为从站负责维护到主站的持久 TCP 连接,主站只需在事件发生时将数据复制到套接字上。除此之外,主人既不知道也不关心奴隶是否或何时开始执行它们。
最后一条语句的部分例外是半同步复制,这不是默认设置。在这种模式下,master 等待至少一个 slave 确认收到和持久存储(虽然不是实际执行)来自每个事务的二进制日志事件,然后 master 在每次提交时将控制权返回给 client。
但在任何情况下,主站都不负责在从站上实际执行更新——它只是向从站发送两件事之一:运行的实际输入查询的副本(在基于语句的模式下)或每个查询实际插入/更新/删除的行的数据(在基于行的模式下)。在混合模式下,查询优化器将决定在每个事件的基础上使用哪种格式。
| 归档时间: |
|
| 查看次数: |
10429 次 |
| 最近记录: |