欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(四)深入浅出索引-2

程序员文章站 2022-04-05 22:54:48
...
select *fromTwhere k between 3 and 5

执行此条sql语句需要执行几次树的操作?会扫描多少行?以下时上句sql中的建表语句:

mysql> create table T (
ID int primary key,
k int NOT NULL DEFAULT 0,
s varchar(16) NOT NULL DEFAULT '',
index k(k))
engine=InnoDB;

下图是sql查询语句的在mysql Innodb中的存储状况:

(四)深入浅出索引-2

以下是对上图的流程执行分析:

1. 在k索引树上找到k=3的记录,取得 ID = 300;

2. 再到ID索引树查到ID=300对应的R3;

3. 在k索引树取下一个值k=5,取得ID=500;

4. 再回到ID索引树查到ID=500对应的R4;

5. 在k索引树取下一个值k=6,不满足条件,循环结束。

在这个过程中:回到  主键索引树 搜索的过程,我们称之为回表