返回
MySQL 日志体系与主从复制
百科(权威知识源 · 考试范围)
作者:管理员最后更新:2026/9/4 12:41:09审核:管理员

MySQL 日志体系与主从复制

日志是 MySQL 持久性、可靠性与高可用的基石。

MySQL 日志体系

  • Redo Log(InnoDB 物理日志):记录页的修改,用于崩溃恢复(持久性)。
  • Undo Log(逻辑日志):用于回滚MVCC 多版本读。
  • Binlog(服务层二进制日志):记录逻辑数据变更,用于主从复制与数据恢复。命令:SHOW BINLOG EVENTS
  • 其他:慢查询日志、错误日志、通用查询日志。

两阶段提交

为让 Redo Log 与 Binlog 保持一致(避免崩溃后数据与日志不一致),采用两阶段提交:

  1. Redo Log 写 prepare 状态。
  2. 写 Binlog。
  3. Redo Log 写 commit

主从复制

主从复制原理:

  1. 主库将变更写入 Binlog
  2. 从库的 IO 线程 拉取主库 Binlog,写入从库的 Relay Log
  3. 从库的 SQL 线程 重放 Relay Log,完成数据同步。

复制模式:

  • 异步复制(默认):主库写完即返回,不等从库。
  • 全同步复制:等待所有从库确认。
  • 半同步复制(semi-sync):至少一个从库确认。

基于主从可做读写分离(主写从读)。

分表分库

当单库/单表数据量过大,需拆分:

  • 垂直拆分:按业务把表/库拆开(如订单库、用户库)。
  • 水平拆分:按分片键把数据路由到多库多表(如按 user_id 分片)。

分表分库带来的挑战:

  • 跨库查询分布式事务全局唯一 ID 生成、跨库 join 等。

总结

  • Redo / Undo / Binlog 三日志各司其职:崩溃恢复、回滚 MVCC、主从复制。
  • 两阶段提交保证日志一致。
  • 主从复制 → 读写分离;分表分库 → 水平扩展,兼顾挑战。
考试信息
通过标准满分(错一道即与满分无缘,可把整卷答完看解析;重考不限次数)
时间限制不限时
单卷抽题数10 题
成绩窗口2026-09-14 ~ 2026-09-20
积分学费10 积分
支付方式满分后用积分支付(自主决定)
用积分支付:成绩长期保留,参与排名,积分学费含平台资助池;不支付:成绩保留至窗口截止后清空
积分无充值通道;积分不足 10 时,平台自动发放 100 积分。积分不可提现、不可转让、无现金价值。
排行榜(窗口期最短满分用时 · 前 0 名)
当前窗口(2026-09-14 ~ 2026-09-20)

该窗口暂无满分记录

课程(免费学习 · 共 0 门)

暂无课程

登录后可查看我的出题、测试记录并参加满分考试