后端岗位面试题更新 2026-08-05

在 MySQL 中,系统预设的事务隔离级别是哪一种?请说明其选择依据和背后的设计考量。

后端开发技术原理方案权衡MySQL

考察说明

考查对 MySQL 默认隔离级别的掌握及对其在并发与一致性之间权衡的理解。

回答思路

  1. 【回答框架 1】MySQL 默认的事务隔离级别是 REPEATABLE READ(可重复读),即一个事务内多次读取同一数据结果一致,且通过 MVCC 避免脏读和不可重复读。
  2. 【回答框架 2】选择该级别是因为 MySQL 的 InnoDB 存储引擎在可重复读下使用间隙锁和临键锁,能有效防止幻读,从而在保证较高一致性的同时维持较好的并发性能。
  3. 【回答框架 3】与 SQL 标准不同,MySQL 在可重复读下通过锁机制额外解决了幻读问题,因此比标准定义的隔离级别更强。
  4. 【回答框架 4】区分其他级别:读未提交允许脏读,读已提交仅避免脏读但可能不可重复读,串行化完全串行但性能极低。默认选择可重复读是在标准要求、实际使用和性能之间折中的结果。
  5. 【关键点 1】MySQL 默认隔离级别为 REPEATABLE READ。
  6. 【关键点 2】InnoDB 通过 MVCC + 间隙锁解决幻读,使可重复读效用提升。
  7. 【关键点 3】该级别平衡了并发性能与数据一致性。
  8. 【易错点 1】容易误认为 MySQL 默认隔离级别是读已提交,需注意与标准 SQL 的差异。
  9. 【易错点 2】可重复读不一定完全防止幻读,具体取决于锁的使用方式。
  10. 【易错点 3】不同存储引擎(如 MyISAM 不支持事务)可能表现出不同行为。