位图索引
来源:互联网 发布:ubuntu的linux修改ip 编辑:程序博客网 时间:2024/04/28 13:46
对查询“select * from t where b=1 and (a=’L’ or a=’M’)”
分析:位图索引使用方面,和B*索引有很大的不同。B*索引的使用,通常是从根节点开始,经过不断的分支节点比较到最近的符合条件叶子节点。通过叶子节点上的不断Scan操作,“扫描”出结果集合rowid。
而位图索引的工作方式截然不同。通过不同位图取值直接的位运算(与或),来获取到结果集合向量(计算出的结果)。
针对实例SQL,可以拆分成如下的操作:
1、a=’L’ or a=’M’
a=L:向量:1010
a=M:向量:0001
or操作的结果,就是两个向量的或操作:结果为1011。
2、结合b=1的向量
中间结果向量:1011
B=1:向量:1001
and操作的结果,1001。翻译过来就是第一和第四行是查询结果。
3、获取到结果rowid
目前知道了起始rowid和终止rowid,以及第一行和第四行为操作结果。可以通过试算的方法获取到结果集合rowid。
上面的操作演算过程,说明了两个问题:
位图索引是可以多索引共同合作操作的,不像B*树索引只有一个会加入结果集合;
位图索引的工作是通过位逻辑运算,非扫描操作;
0 0
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- 位图索引
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- iOS 5.0 后UIViewController新增方法
- GRE词汇下载:与希腊神话有关的词汇
- [Android Studio 权威教程]AS构建系统-Gradle
- Android中获得上下文的静态方法
- 位图索引
- 动态规划题目总结(持续更新)
- Js setInterval使用
- BitMap、Drawable、inputStream及byte[] 互转
- TCP双向传输
- Phalcon学习笔记(6)分发器和事件管理器
- TabHost页和子Activity之间的通讯
- (7.2.7)Apache Lucene初探
- sort用于对象排序