导航菜单

索引原理专题

索引是 MySQL 性能优化的核心,理解索引的底层原理和优化技巧是面试的必考内容。

常见题型

题型核心知识点典型问题
索引结构B+树、Hash为什么用 B+树、B+树 vs B 树
索引类型聚簇、非聚簇、联合聚簇索引 vs 非聚簇索引、最左前缀
索引优化覆盖索引、索引下推什么是覆盖索引、ICP 优化
执行计划EXPLAIN、type、keyEXPLAIN 各字段含义
索引失效隐式转换、函数运算什么时候索引会失效

索引数据结构对比

结构查找范围查询顺序 I/OMySQL 使用
B+树O(log n)✓ (InnoDB, MyISAM)
HashO(1)✓ (Memory)
B 树O(log n)
二叉树O(log n)

索引类型对比

类型特点存储方式数量限制
聚簇索引数据和索引在一起主键索引1 个
非聚簇索引索引和数据分离辅助索引多个
联合索引多个字段组合B+树多个
全文索引全文搜索倒排索引多个
哈希索引等值查询Hash 表自适应

索引优化技巧

优化原理效果
覆盖索引索引包含所需字段避免回表
最左前缀联合索引从左匹配减少索引数量
索引下推存储层过滤数据减少 IO
前缀索引只索引前几个字符节省空间

章节

搜索