数据库 (MySQL) 面试题库

这里记录了关系型数据库(主要针对 MySQL)的核心面试题:

索引与底层结构

事务与并发控制

  • 事务的四大特性(ACID)分别是什么?底层是如何保证的?
  • 数据库的并发异常有哪些(脏读、不可重复读、幻读)?
  • MySQL 的四种隔离级别是什么?分别解决了什么问题?
  • 什么是 MVCC(多版本并发控制)?它的底层实现原理(Read View、Undo Log)?
  • MySQL 是如何解决幻读问题的?

锁机制

  • MySQL 有哪些锁(全局锁、表级锁、行级锁)?
  • 什么是共享锁(S锁)和排他锁(X锁)?
  • 什么是记录锁(Record Lock)、间隙锁(Gap Lock)和临键锁(Next-Key Lock)?
  • 什么是死锁?MySQL 是如何处理死锁的?

日志与架构

  • MySQL 的体系架构是怎样的(Server层与存储引擎层)?
  • InnoDB 和 MyISAM 存储引擎的区别?
  • binlogredo logundo log 的作用分别是什么?
  • 什么是两阶段提交?
  • 什么是 WAL(Write-Ahead Logging)技术?

优化与高可用

  • 如何使用 EXPLAIN 分析 SQL 的执行计划?
  • 慢查询日志如何排查和优化?
  • 什么是深分页问题(Limit 1000000, 10)?如何优化?
  • MySQL 主从复制的原理是什么?
  • 什么是分库分表?有哪些常见的分片算法?