首页 > 代码库 > 索引的三大特性,示例应用

索引的三大特性,示例应用

索引的三大特性

1索引高度

 

在SQL检索数据(SELECT)的时候,索引的高度的不同对检索的效率有明显的差别,数据库访问索引需要读取的数据块通常是索引的高度+1个数据块数,也就是说索引的高度越高,访问索引需要读取的数据块数越多,效率越差。

 

 

从上面的试验中可以看到,随着表索引高度的增加,其查询索引产生的一致性读也随之增加。

 

2索引存储列值

 

分析一个索引块我们可以知道索引块不仅存储了rowid信息,而且还存储了索引列的值,那么当我们查询的值正好是在索引里时或者做一些聚合计算(如sum,max,min)时,就可以利用这个特性。

 

3索引本身有序

 

从索引的存储结构上可以看到,索引的存储是有序存放的,扫描索引的时候是从根节点开始,经过颈节点到叶子节点,这个特点下索引的范围查询或等值查询,索引只需要扫描一段范围就可得出结果,因为其本身是有范围的,我们可用利用索引这个特点来降低实际查询的排序操作。

 

 

哪些场景会用不上索引(索引没失效)

 

.1用索引代价反而更高

 

2 发生了索引列的类型转换

 

3 对索引列进行了各种运算

 

索引的三大特性,示例应用