① 标题党#
主标题:Doris 查询慢?先看看它有没有"小众索引"
备选:前缀索引、布隆、倒排——Doris 的索引三兄弟谁最能打?
② 开场钩子#
Doris 有三大”隐形加速器”,但很多人只会建表、不会用它们。用对了,查询快一个量级;用错了,白占空间。
③ 主角特性:三类索引#
- 前缀索引(ShortKey Index):排序键的前缀自动生效,等值/范围查询直接定位,零成本。
- BloomFilter 索引:对”高基数、低命中率”列加,先做存在性过滤,大比例剪枝。
- 倒排索引(Inverted Index):自 1.2 起支持,用于全文/子串/精确匹配,如日志检索。
④ 最小可复现#
-- 排序键=前缀索引(建表时排序键顺序决定)
CREATE TABLE t (id, name, val) ORDER BY (id, name);
-- BloomFilter
PROPERTIES ("bloom_filter_columns" = "name");
-- 倒排
CREATE INDEX idx_name ON t(name) USING INVERTED;sql⑤ 结论#
前缀索引白送、布隆剪枝、倒排抓文本。把三者对症下药,Doris 的扫描成本能砍一个数量级。
⑥ 配图脚本#
三兄弟对比卡 / 前缀定位图谱 / 布隆剪枝示意 / 倒排查找文本