1 个回答
Doris中Bitmap索引的核心作用是针对低基数列(即重复值多的字段)实现高效的多值精确查询与复杂条件过滤,其优势主要体现在以下三个层面:
1、加速精确查询与集合运算
1、加速精确查询与集合运算
假设有1亿用户数据,其中gender字段仅有2种取值(基数=2),city字段有100个城市(基数=100)。对查询WHERE gender='male' AND city IN ('北京','上海'):
无索引时:需逐行扫描过滤,时间复杂度O(n)。
使用Bitmap索引:通过位运算直接合并gender='male'的位图与city='北京'、city='上海'的位图,时间复杂度降至O(1)。实际测试中,此类查询速度可提升10倍以上。
2、高效支持多列复杂条件组合Bitmap索引通过位向量(Bit Vector)的AND/OR/NOT操作实现灵活过滤
3、节省存储空间与提升压缩效率每个唯一值仅存储一个位向量(如性别为‘男’的位图是0b1010...),且Doris采用压缩算法(如Roaring Bitmap)进一步减少存储占用。实测显示,对于基数100的字段,Bitmap索引空间仅为原始数据的1/5。
发布于:2周前 (05-21) IP属地:
我来回答
您需要 登录 后回答此问题!