《数据库系统概念》16-位图索引和查询处理


一、位图索引
位图索引(bitmap indices)是一种专为多个键的简单查询而设计的。应用位图索引的前提是记录必须被按顺序编号,一般从0开始。给出编号n,必须能够很容易的找到对应的记录,如果记录被存放在连续的块,可以将编号n转换成块编号+块内偏移的表示以快速定位记录位置。

位图索引的结构


位图索引用一个位来对应一条记录,这便是记录需要被编号的原因。instructor_info表如上图,性别的值有男、女两种,收入等级则划分为5级,既有5种值。在给性别属性建立位图索引时,就会分别为male和female建立,对于male位图来说,如果一条记录的性别为male,则位图上对应的位会置1,female、收入等级位图也采用相同的做法。
位图索引的优势体现在根据多个键的查询的时候,比如查询where gender=’f’ and income_level=’L2’,只需将f的bitmap和L2的bitmap取交集即可。
此外,在进行数据分析时经常需要统计符合某些条件的记录的数量,使用bitmap也可以很方便地实现,只需统计交集中值为1的位的数目。
删除记录的时候会使数据序列产生间隙,但逐个移动数据消除间隙开销很大,所以引入一个新的存在位图(existence bitmap),在间隙对应的位置1。新增的数据将被追加到尾部,这样不会影响已有记录的顺序。


二、查询处理

在从数据库提取数据的过程中,查询处理要做的操作有:语法分析与翻译、优化、评估与执行。

查询代价的度量
使用传送磁盘块数(number of block transfers)和搜索磁盘次数(number of disk seeks)来衡量查询的代价。假设磁盘子系统传输一个块的数据需要t
T秒,搜索数据需要ts秒,则传送b个块并进行S次磁盘搜索的操作将消耗b*tT+s*ts秒。现在磁盘的典型数值为tT =0.1毫秒,ts =4毫秒,假定磁盘块的大小是4KB,传输率为40MB/秒。
通过将读操作与写操作区分开可以做出更精细地估算,写操作花费的时间约为读操作的两倍,因为写完数据后,磁盘系统会再次读取该扇区以验证写入是否成功。

 

学习资料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值