50. MySQL 主从复制的流程是怎么样的?
MySQL 的主从复制是基于如下 3 个线程的交互(多线程复制里面应该是 4 类线程):
- Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到 slave 。
- Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay log 。
- Slave 上面的 SQL 线程,该线程负责读取 relay log 并执行。
- 如果是多线程复制,无论是 5.6 库级别的假多线程还是 MariaDB 或者 5.7 的真正的多线程复制, SQL 线程只做 coordinator ,只负责把 relay log 中的 binlog 读出来然后交给 worker 线程, woker 线程负责具体 binlog event 的执行。