MySQL 的 master-slave 复制实施细节
很多 WEB 站点使用 MySQL 的 master-slave 结构,写请求都在 master 数据库上操作,读请求都在 slave 数据库上操作,这样就减轻了单台数据库的读写压力。MySQL 是如何实现数据从 master 到 slave 的同步呢?
当 slave 发起了 START SLAVE 指令时,slave 会创建一个线程来连接 master,让 master 发送二进制的更新日志。当然这里有两点要明确的:1)master 必须记录二进制更新日志;2)slave 必须告知 master 要从哪个点开始复制二进制日志。master 收到 slave 的请求后,也会创建一个线程,从指定的点开始给 slave 发送二进制日志。slave 会有另外一个线程根据接收到的二进制日志来更新本地数据。这样就实现了 master 到 slave 之间的数据同步。