MySQL 高频面试题
面试题按“先讲结论,再解释机制,最后给出工程边界”的顺序组织。回答涉及版本、隔离级别或部署形态时,应主动说明前提。
一、核心题目
- MySQL:索引、事务、锁与优化
- PostgreSQL:MVCC、VACUUM、WAL 与执行计划
- TiDB:Raft、Region、分布式事务与 HTAP
- Redis:缓存一致性、持久化、复制与集群
- MongoDB:文档建模、副本集与分片
二、回答框架
| 题型 | 必答要点 | 追问方向 |
|---|---|---|
| 索引为什么快 | 数据结构、访问路径、回表成本 | 联合索引顺序、统计信息、执行计划 |
| 隔离级别如何选择 | 一致性目标、并发异常、实现机制 | MVCC、锁、长事务 |
| 如何恢复误删数据 | RPO/RTO、备份链、隔离恢复验证 | PITR、binlog/WAL、权限与演练 |
| 怎样治理慢 SQL | 证据采集、EXPLAIN、基数估算、改写与回归 | 索引设计、锁等待、资源瓶颈 |
三、面试前自检
- 能使用 Session A/B 说明一次锁等待、死锁或可见性差异。
- 能读出一份执行计划中的访问方法、预估行数与实际偏差。
- 能区分 MySQL 5.7、8.0 与 8.4+ 的版本能力及迁移风险。
