doris在不命中分区情况下,如果对筛选条件进行查询加速?

Viewed 47

例如仅以更新时间作为条件查询,如何进行查询加速?

1 Answers

这个问题问的比较广,查询优化这里其实涉及到的内容比较多

  1. 表级别:
    1. 考虑建表的分桶数、是否分区(因为会有分区裁剪)
    2. 表模型:查询性能依次为:duplicate key -> Unique(mow)-> Unique(mor)== AGG
  2. 参数级别:
    1. 1.2 版本需要看是否调整过并发: parallel_fragment_exec_instance_num(cpu 核数一半)
    2. 2.0+ 版本有pipeline ,需查看 enable_pipeline_engine 是否开启,parallel_pipeline_task_num是否设置合理 https://doris.apache.org/zh-CN/docs/dev/query-acceleration/pipeline-execution-engine?_highlight=pipeline#%E8%AE%BE%E7%BD%AEsession%E5%8F%98%E9%87%8F
    3. 2.0+ 版本需要查看是否开启新优化器 https://doris.apache.org/zh-CN/docs/dev/query-acceleration/nereids?_highlight=%E4%BC%98%E5%8C%96&_highlight=%E5%99%A8
    4. 查看是否有开启profile ,show variables like "%profile%"; 默认不开启profile,否则会影响到性能

遇到慢查询问题,首先可以按照以上方式进行排查,如果问题没能解决,需要您提供Doris版本信息和对应profile(可以开启session级别的profile),case by case 的进行分析