有奖捉虫:行业应用 & 管理与支持文档专题 HOT

基础查询调优

查询分区表时,一定要带上分区字段,Explain + SQL 可以协助用户分析查询了几个分区和 tablet 的数据。
查询 SQL 条件最好能命中分区 Key 和分桶 Key。
查询 SQL 条件最好能命中前缀索引。
由于 Doris 是列存数据库,当查询的字段足够多的时候,可能性能还不如行式存储,建议查询时尽可能选择具体的字段代替 *,在查询的最后方加上 limit number 的限制。
执行 Select 操作的时候尽可能避免写成 function(column)= "xxxx"的形式,这样将导致无法发挥 Doris 系统谓词下推的优势,左侧应为列名,右侧应该为可以计算展平的常数值。
查询尽可能避免使用 or,union all 的情况,在大多数场景下,考虑使用 in 代替 or
普通数据探查的 SQL,如果不需要全部数据,建议加上 limit 返回条数限制,也可加速查询。

Join 优化

Shuffle 方式优化:效率为 Colocate join > Bucket Shuffle > Shuffle > BroadCast,具体参见 Bucket Shuffle Join
RuntimeFilter:join 查询中,存在除了关联条件之外,右边有其他过滤条件。

使用 Rollup

查询无法覆盖基表前缀索引,通过 Rollup 调整 Key 顺序形成前缀索引。
对 Aggregate 表进行 Key 筛选聚合

使用物化视图

如果经常对某表进行模式固定的聚合查询,建议在此表创建物化视图;
Rollup 支持的场景都能用;
对 Duplicate 表形成额外聚合。
详情请参见 物化视图

索引优化

Bitmap 索引:取值基数比较小的列[100-100000],查询条件命中列。
BloomFliter 索引:如果经常对某列进行精确点查,且列的基数较高,建议在此列创建 Bloom filter 索引。

使用 Cache

PageCache:此配置默认开启。
SqlCache:此配置默认关闭。并发高,查询结果集较小时效果好。
?


http://www.vxiaotou.com