前言:

  • 每个索引都对应一颗二叉树

    叶子结点(用户记录) + 内节点(目录项)

  • 聚簇索引

    InnoDb会自动为主键建立聚簇索引,包含用户纪录完整信息的索引

  • 二级索引

    叶子结点由主键和索引列构成,需要进行回表操作

  • 索引结构

    每层节点按照索引值大小排成双向链表,页内记录按照索引值排列成单向链表,联合索引依次排列

  • 索引查找记录过程

    从根节点依次往下,页内:二分+遍历

一、B+树索引示例图的简化

二、索引的代价

  • 空间
  • 时间

三、应用B+树索引

1、扫描区间和边界条件

2、索引用于排序

3、索引用于分组

四、回表的代价

五、更好地使用索引

1、只为用于搜索、排序或分组的列创建索引

2、考虑索引列中不重复值的个数

3、索引列的值尽量小

4、为列前缀建立索引

5、覆盖索引

6、让索引列以列名的形式在搜索条件中单独出现

7、新插入纪录时主键大小对效率的影响

8、冗余和重复索引

六、总结