Bitmap 索引
为了加速数据查询,Doris 支持用户为某些字段添加 Bitmap 索引,适合在基数较低的列上进行等值查询或范围查询的场景。
最佳实践
-- 创建示例:在 bitmap_table 上为 siteid 创建 Bitmap 索引
CREATE INDEX [IF NOT EXISTS] bitmap_index_name ON
bitmap_table (siteid)
USING BITMAP COMMENT 'bitmap_siteid';
强制规约
- Bitmap 索引仅在单列上创建。
- Bitmap 索引能够应用在
Duplicate
、Uniq
数据模型的所有列和Aggregate
模型的 key 列上。- Bitmap 索引支持的数据类型如下:
TINYINT
SMALLINT
INT
BIGINT
CHAR
VARCHAR
DATE
DATETIME
LARGEINT
DECIMAL
BOOL
- Bitmap 索引仅在 Segment V2 下生效。当创建 Index 时,表的存储格式将默认转换为 V2 格式。
- Bitmap 索引必须在一定基数范围内构建,太高或者太低的基数都不合适
a. 适用于低基数
的列上,建议在100 到 100,000
之间,如:职业、地市等。重复度过高则对比其他类型索引没有明显优势;重复度过低,则空间效率和性能会大大降低。特定类型的查询例如 COUNT, OR, AND 等逻辑操作因为只需要进行位运算
b. 该索引更多的适合正交查询