图解”How MySQL Replication Works”

上图先:
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就会越有效。

In:

3 responses to “图解”How MySQL Replication Works””

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

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *