索引下

Posted jackw1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引下相关的知识,希望对你有一定的参考价值。

在下列表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语句执行流程:

  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的记录,不符合条件,结束循环

在这个过程中,回到主键索引搜索树的过程,成为回表。

在这个例子中,由于查询结果所需要的数据只有主键索引上有,所以不得不回表。如果执行的语句是select ID from T where k between 3 and 5;,只需要查询ID的值,而k索引树上有这个值,不需要回表,索引k已经覆盖了查询所需要的值,成为覆盖索引

覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。

联合索引:将多个字段设置为索引,在B+树上符合最左前缀原则。

以上是关于索引下的主要内容,如果未能解决你的问题,请参考以下文章

javascript UV Index Monitor App订阅PubNub并显示UV索引值。博文的代码片段。在这里查看项目:https:// githu

c_cpp UV Index Indicator订阅PubNub并使用颜色显示UV索引值。博文的代码片段。在这里查看项目:https:/

活动结果片段索引超出范围:0x20001

片段(Java) | 机试题+算法思路+考点+代码解析 2023

java.lang.IllegalStateException:键 f1 的片段不再存在:索引 3

两个片段之间的 onItemClickListener