标签:需要 tween dex sele 查询 create prim 多个 arch
在下列表T中,执行select * from T where k betwee 3 and 5;
,需要执行几次树的搜索操作?
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;
insert into T values(100,1, ‘aa‘),(200,2,‘bb‘),(300,3,‘cc‘),(500,5,‘ee‘),(600,6,‘ff‘),(700,7,‘gg‘);
SQL
语句执行流程:
在这个过程中,回到主键索引搜索树的过程,成为回表。
在这个例子中,由于查询结果所需要的数据只有主键索引上有,所以不得不回表。如果执行的语句是select ID from T where k between 3 and 5;
,只需要查询ID的值,而k索引树上有这个值,不需要回表,索引k已经覆盖了查询所需要的值,成为覆盖索引。
覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。
联合索引:将多个字段设置为索引,在B+树上符合最左前缀原则。
标签:需要 tween dex sele 查询 create prim 多个 arch
原文地址:https://www.cnblogs.com/jackw1/p/12597148.html