tencent cloud

文档反馈

查询调优

最后更新时间:2024-07-31 09:17:49

    基础查询调优

    查询分区表时,一定要带上分区字段,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:此配置默认关闭。并发高,查询结果集较小时效果好。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持