MySQL 运维场景面试题
1. 主从同步延迟
【题目】
生产 MySQL 主从同步延迟常态化 30s~5min,业务读从库频繁数据不一致。请从硬件、SQL、参数、架构四个维度给出优化方案?
【参考答案】
🔧 硬件层:
- 从库磁盘升级为 SSD,提升 IOPS
- 优化 IO 调度算法(deadline → noop/kyber)
📝 SQL 层:
- 拆分大事务,避免一步操作百万行
- 大批量 DML 改为分批提交(每批 1000~5000 行)
⚙️ 参数层:
- 开启并行复制:slave_parallel_workers = 4~8
- binlog 格式建议 ROW
- 优化 relay log 落盘参数:sync_relay_log = 1(可选)
- 调整 innodb_flush_log_at_trx_commit 权衡性能与安全
🏗️ 架构层:
- 读写分离:读流量走从库,关键业务读走主库
- 分库分表:打散单库写入压力
- 考虑引入 缓存层(Redis)减轻读压力
场景题回答思路 场景题的关键是分维度作答 + 给出可落地的具体参数/命令,而不是只说”优化参数”这种空话。能说出 slave_parallel_workers=4 和 sync_relay_log=1 就是加分项。
【延伸追问】
- Seconds_Behind_Master 的局限性是什么?如何补充监控?
- 如果从库硬件无法升级,还有哪些软件层面的优化手段?
【易错坑点】
- ❌ 只提一个维度的优化(至少覆盖 3 个维度)
- ❌ 忽略大事务对主从延迟的影响(大事务是延迟的常见元凶)
- ❌ 并行复制不是银弹,需要评估从库 CPU 资源是否充足
关联文档
- MySQL 日志与复制 — 日志与主从复制
- MySQL 基础知识面试题 — 基础概念题
- 主从同步故障排查 — 故障排查实战