Skip to content
进阶

一句话答案

主库写 binlog→从库 IO 线程拉取写 relay log→SQL 线程重放,支持异步/半同步/组复制。

核心要点

三个线程:

  • 主库 Binlog Dump Thread:发送 binlog
  • 从库 IO Thread:接收写入 relay log
  • 从库 SQL Thread:重放 relay log

同步方式: 异步(默认) / 半同步(至少一个从库确认) / 组复制(Paxos)

追问与易错

追问方向:

  • 主从延迟怎么监控和减少?
  • binlog 格式选 ROW 还是 STATEMENT?
  • 主库崩溃切从库可能丢数据吗?

易错点:

  • ❌ 从库数据和主库完全一致——有延迟
  • ❌ 主从复制是同步的——默认异步

💡 记忆锚点

主从复制像抄笔记:老师(主库)在黑板上写板书(binlog),课代表(IO 线程)把板书抄到笔记本(relay log),学生(SQL 线程)照着笔记本做作业(重放)。默认异步抄写所以有延迟,半同步要求至少一个学生举手确认抄到了才继续讲课。