基于Bitmap索引的BW查询计算
查询1: 显示所有的满足下面条件的记录:where Y = 100 AND Z = BOO
为了计算上诉查询,对 Y = 100 和 Z = BOO的 Bitmap 执行按位与操作:
Y = 100 的Bitmap 为 1 0 1 0 0
Z = BOO的Bitmap为 0 1 1 0 0
按位与:
1 0 1 0 0
与
0 1 1 0 0
结果 0 0 1 0 0
从上面的计算可以看出上诉Bitmap的位操作只有对于数据表的第3行为真。所以查询1的结果就是数据表的第3行:
X Y Z
3 100 BOO
查询2: 显示满足条件的所有记录: WHERE Y = 100 OR Z = BOO
与查询1的计算方法相似,
Y = 100 的Bitmap 为 1 0 1 0 0
Z = BOO的Bitmap为 0 1 1 0 0
按位或:
1 0 1 0 0
或
0 1 1 0 0
结果 1 1 1 0 0
从计算结果可以看出,上诉位计算对数据表的前3行为真。所以查询2的结果是数据表的前3行:
X Y Z
1 100 FOO
2 200 BOO
3 100 BOO
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/119153/viewspace-626081/ ,如需转载,请注明出处,否则将追究法律责任。