- 基于索引的选择算法
当我们做选择操作时,假如选择条件中涉及到的属性没有索引,那么就需要将关系表中每个元组加载到内存中判断是否满足条件,如果满足输出到输出缓冲区中。如果表中查询条件中涉及到的属性有索引,那么在执行选择操作的时候,首先将索引文件加载到内存中,然后通过索引找到需要元组,然后再通过判断是否满足条件,满足后输出。
具体实例:假设表R的所占磁盘块个数为1000个记录有20000个,a是R的一个属性,在a上有一个索引,现在考虑选择a= 0 的所有元组。
如果使用索引并且索引是聚簇的,假设V(R,a) = 100,即R关系中a不同值得个数为100,那么需要1000/100 = 10 次IO.(解释:由于索引是聚簇的 ,大约a=0的磁盘块有1000/100 = 10个)
如果使用索引并且索引是非聚簇的,假设V(R,a) = 100,那么需要20000/100 = 200次IO(解释:如果索引非聚簇,那么索引表中的索引项与元组个数有关,大约20000 /100 = 200个a=0的元组,如果每个元组存在不同的磁盘块,需要200次io)
基于索引的算法
最新推荐文章于 2023-02-01 14:13:38 发布