图解"How MySQL Replication Works"

2009-04-22  |  18:10分类:MySQL  |  标签:  |  

上图先:
replication

在使用MySQL的应用中,如果你的MySQL Server压力逐渐增大,在应用层优化已经到了一定瓶颈时,那么你应该首先考虑MySQL_Replication。本文将利用图示的方式简单的描述出MySQL Replication是如何工作的。

如何同步

  1. 主库将所有的更新操作,写入二进制日志。
  2. 从库运行"IO线程"(Slave IO Thread)读取主库的二进制日志。
  3. 从库运行"SQL线程"(Slave SQL Thread)执行IO线程(Slave IO Thread)读取的日志中的SQL,从而保持和主库的一致。

如何分配请求

  1. 目前,这部分需要在应用层实现。
  2. 执行更新SQL(UPDATE,INSERT,DELETE)时,请求主库。
  3. 执行查询SQL(SELECT)时,请求从库。

所以,当你的应用(Application)SELECT请求所占的比率越大,那么Relication就会越有效。

喜欢本文,那就收藏到:

3条评论 关于 “图解"How MySQL Replication Works"”

  1. orczhou 发表于: 四月 22nd, 2009 18:19

    补充说明:
    1.Slave的 I/O 线程读取的二进制日志时,会将其暂时存为“中继日志”(relay logs),等待SQL线程读取并执行。

    2.Slave的I/O线程并不是直接读取Master的二进制日志文件,事实上,当I/O线程发起去请求时,Master会创建一个Binlog Dump线程将最新的二进制日志发送给Slave的IO线程。

  2. MySQL如何传输二进制日志 - 一个故事@MySQL DBA 发表于: 十一月 20th, 2011 23:53

    [...] MySQL如何传输二进制日志 2011-11-20  |  23:53分类:MySQL  |  标签:Replication、图解  |  1 views MySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案。MySQL通过向备库传送二进制日志来实现Replication,本文将通过二进制日志相关源代码的主要接口来解释:“MySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?”。 [...]

  3. MySQL如何传输二进制日志 | 合房网技术中心 发表于: 八月 30th, 2012 09:50

    [...] MySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案。MySQL通过向备库传送二进制日志来实现Replication,本文将通过二进制日志相关源代码的主要接口来解释:“MySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?”。 [...]


发表您的评论