最近在标签存储中,需要根据标签值查询用户id,所以想到在源数据表基础上建立索引。因为标签数据量大,且标签基数相对较少,查询条件往往涉及多标签组合过滤,所以选用了bitmap作为索引。
bitmap简介
bitmap就是以比特位来存储状态。
bitmap索引
例如用户数据表
现在要在用户性别和婚姻状态建立bitmap索引。
通过索引值为1,我们可以看出性别男的用户rowid为1和3,然后在查询源用户表,就可以查出性别男的是张三,王五。婚姻状况同理。
下面我们如果要查询:
select * from table where Gender=’男’ and Marital=’未婚’
首先我们找到男索引列和未婚索引列,然后对其取并集。