本文精简梳理 MySQL 索引核心数据结构,聚焦高频考点与实战应用,避免冗余,适配快速阅读和面试应答,兼顾实用性与易懂性。

一、核心结论

MySQL 主流索引数据结构为 B + 树,仅 Memory 引擎支持哈希索引,InnoDB、MyISAM 引擎默认均使用 B + 树索引。

二、核心数据结构详解

  1. 主流结构:B + 树

    • 核心特点:多叉树结构,层级极浅(百万级数据仅 3-4 层),大幅减少磁盘 IO;
    • 叶子节点存储数据(InnoDB)或数据地址(MyISAM),且通过双向链表连接,支持高效范围查询;
    • 非叶子节点仅存索引值,不存实际数据,进一步优化查询效率。
  2. 特殊结构:哈希索引

    • 仅适用于 Memory 引擎,通过哈希函数映射索引值与数据地址,等值查询极快(O (1));
    • 局限性:不支持范围查询、排序和模糊查询,日常开发中应用场景有限。

三、关键注意事项

  1. 二叉树、B 树因层级深、范围查询低效,均不适合 MySQL 海量数据场景,已被 B + 树替代;
  2. InnoDB 主键索引为聚簇索引(叶子节点存行数据),辅助索引需回表查询;
  3. 索引设计需兼顾查询效率与写操作性能,避免过多索引导致插入 / 更新变慢。

总结

MySQL 索引核心用 B + 树,适配磁盘 IO 优化,支持高效等值、范围查询;哈希索引仅适用于 Memory 引擎,日常开发以 B + 树索引为主,兼顾查询与写操作效率。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐