本文主要是介绍稀疏索引与稠密索引,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在谈这两个索引之前,我们要明白为什么要使用索引,当内存容纳不下记录本身大小,我们存储较小的索引,这样查找记录最多只需要一次I/O操作。
先说一下聚集索引的定义:
聚集索引:在一张表中,如果一个索引有如下特性,数据的物理顺序与键值的逻辑顺序相同。
稠密索引和稀疏索引都属于聚集索引。
1. 稠密索引
定义:它是由键值和指针(指向记录本身地址)组成的一系列存储块,该存储块的键值与文件的逻辑顺序一致。
特性:每个存储块的每一个键对应的指针都指向每个数据块每一条记录,当要查找指定键K时,采用二分查找即可找到键K对应的记录,复杂度为log2n。
2. 稀疏索引
定义:它是由键值和指针(指向记录本身地址)组成的一系列存储块,该存储块的键值与文件的逻辑顺序单调性一致。
特性:每个存储块的每一个键对应的指针都指向每个数据块的第一条记录,当要查找指定建K时,先采用二分查找找到<=K的键S,如果S=K,则命中记录,如果S<K,则顺序查找=K的键,复杂度大于log2n,小于n。
比较:
a 稀疏索引占用的索引存储空间比较小,但是查找时间较长;
b 稠密索引查找时间较短,索引存储空间较大。
这篇关于稀疏索引与稠密索引的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!