MySQL 索引数据结构
·
本文精简梳理 MySQL 索引核心数据结构,聚焦高频考点与实战应用,避免冗余,适配快速阅读和面试应答,兼顾实用性与易懂性。
一、核心结论
MySQL 主流索引数据结构为 B + 树,仅 Memory 引擎支持哈希索引,InnoDB、MyISAM 引擎默认均使用 B + 树索引。
二、核心数据结构详解
-
主流结构:B + 树
- 核心特点:多叉树结构,层级极浅(百万级数据仅 3-4 层),大幅减少磁盘 IO;
- 叶子节点存储数据(InnoDB)或数据地址(MyISAM),且通过双向链表连接,支持高效范围查询;
- 非叶子节点仅存索引值,不存实际数据,进一步优化查询效率。
-
特殊结构:哈希索引
- 仅适用于 Memory 引擎,通过哈希函数映射索引值与数据地址,等值查询极快(O (1));
- 局限性:不支持范围查询、排序和模糊查询,日常开发中应用场景有限。
三、关键注意事项
- 二叉树、B 树因层级深、范围查询低效,均不适合 MySQL 海量数据场景,已被 B + 树替代;
- InnoDB 主键索引为聚簇索引(叶子节点存行数据),辅助索引需回表查询;
- 索引设计需兼顾查询效率与写操作性能,避免过多索引导致插入 / 更新变慢。
总结
MySQL 索引核心用 B + 树,适配磁盘 IO 优化,支持高效等值、范围查询;哈希索引仅适用于 Memory 引擎,日常开发以 B + 树索引为主,兼顾查询与写操作效率。
更多推荐


所有评论(0)