Mysql中的复合索引(联合索引)原理

2022-08-07 14:47:37

联合索引原理

联合索引,通过顺序比较对应的值,来实现排序和查找。对于每一个联合索引所在页,都包含对应参与联合索引列的值,和指向子节点的指针。

createindex idx_T1_abcon T1(a,b,b);

上诉步骤为T1创建联合索引

联合索引具体查找步骤:
当咱们的SQL语言能够应用到索引的时候,好比 select * from T1 where b = 12 and c = 14 and d = 3 ;也就是T1表中a列为4的这条记录。

查找步骤具体以下:

1、存储引擎首先从根节点(通常常驻内存)开始查找,第一个索引的第一个索引列为1,12大于1,第二个索引的第一个索引列为56,12小于56,因而从这俩索引的中间读到下一个节点的磁盘文件地址(此处其实是存在一个指针的,指向的是下一个节点的磁盘位置)。

2、进行一次磁盘IO,将此节点值加载后内存中,而后根据第一步同样进行判断,发现 数据都是匹配的,而后根据指针将此联合索引值所在的叶子节点也从磁盘中加载后内存,此时又发生了一次磁盘IO,最终根据叶子节点中索引值关联的 主键值 。

3、根据主键值 回表 去主键索引树(聚簇索引)中查询具体的行记录。

在这里插入图片描述
由上图可知,先匹配12,匹配到后,匹配14 以此类推。这就是复合索引的原理。

  • 作者:遇见的昨天
  • 原文链接:https://blog.csdn.net/qq_44787816/article/details/119350389
    更新时间:2022-08-07 14:47:37