数据表中有一些字段,取值相对固定,且有固定的枚举范围,比如性别(男,女),比如为一张订单表设计一个交易状态的字段,状态值也是相对有限的,对于这种类型的字段,将其作为查询条件是,不管是顺序索引还是散列,都不合适,而位图索引对这种场景非常合适。
(1)什么是位图
位图(bitmap)就是一个位的数组,用数组上的位表示对应的记录的某个字段是否为某个值。
比如假设现在有一张雇员表,里面有个性别的字段 gender,如何用位图来表示?
(2)使用场景
位图索引对多个码的选择操作上非常高效,假设有这样一个查询
select *
from t
where col1 = 'xx' and col2 = 'yy';
假设 col1 和 col2 都是选择度比较低的属性(即像性别一样只有有限的枚举值),则可以分别为其建立位图索引,那么要找到满足上述 SQL 的记录,将 从col1 的 xx


9528

被折叠的 条评论
为什么被折叠?



