阿里面试:为什么InnoDB是MySQL默认存储引擎?

InnoDB 从 MySQL 5.5 开始成为默认存储引擎,取代了 MyISAM。

主要原因:是它完美契合现代互联网应用的高并发 + 数据安全需求。

为什么 InnoDB 胜出?

1. 行级锁:高并发读写王者

阿里面试:为什么InnoDB是MySQL默认存储引擎?-mikechen

MyISAM 表锁:A 写时 B/C/D 全部阻塞;

InnoDB 行锁:A 改第1行,B/C/D 可改其他行;

互联网场景验证:电商订单(10 万 QPS),InnoDB 行锁让并发 TPS 提升 10 倍+。

2. ACID 事务:数据零丢失

银行转账、订单支付、库存扣减…

一个 SQL 失败,整个事务回滚,数据永远一致。

InnoDB 的 redo log + undo log 双写机制,宕机后自动恢复,零数据丢失。

3. MVCC + 快照读:读写完全解耦

阿里面试:为什么InnoDB是MySQL默认存储引擎?-mikechen

用户 A 读数据 → 看到旧版本快照;

用户 B 同时更新 → 互不影响,零阻塞;

结果:读写并发翻倍,99 线 RT 从 100ms 降到 10ms。

4. 主从复制 + 崩溃安全

MyISAM 主从:表损坏,主从全崩。

InnoDB 主从:redo log 精确恢复,秒级追平。

阿里面试:为什么InnoDB是MySQL默认存储引擎?-mikechen

生产环境验证:双11 峰值,InnoDB 主从稳定同步亿级 TPS。

一句话结论:
InnoDB 用行锁 + 事务 + MVCC 把 MySQL 从”读快写慢的文件系统”变成真正的”高并发 OLTP 数据库”。

完美适配互联网时代的读写并发 + 数据安全双重要求。

mikechen睿哥

10年+大厂架构经验,大厂面试官,就职于阿里、淘宝等一线大厂,操盘多个亿级数据量大厂核心项目。

评论交流
    说说你的看法