基于索引的算法

  • 基于索引的选择算法
    当我们做选择操作时,假如选择条件中涉及到的属性没有索引,那么就需要将关系表中每个元组加载到内存中判断是否满足条件,如果满足输出到输出缓冲区中。如果表中查询条件中涉及到的属性有索引,那么在执行选择操作的时候,首先将索引文件加载到内存中,然后通过索引找到需要元组,然后再通过判断是否满足条件,满足后输出。
    具体实例:假设表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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值