查看查询工作计划
Desc Graph SQL语句
explain sql语句
desc verbose SQL语句
查询优化手段
Doris支持 索引、物化视图、Rollup、向量化查询引擎、数据模型、分布式join算法、分区分桶的方式进行数据性能查询优化。下面笔者对性能优化的手段排个序。
1.数据模型【优先级高】
模型是Doris最重要的特征,选择aggregae就可以将数据提前聚 合,可以节省大量的时间,选择unique可以将数据提前规范处理,选择duplicate可以保留 数据明细,看诸君需要了。
2.分区分桶【优先级高】
数据性能提升的大杀器,分区分桶其实就传统数据中的二级分区, 这里定义的分区分桶相当于 主键列,如果在SQL条件内,自然能提高查询速度。
3.索引【优先级高】
Doris有前缀索引、BLoom filter索引、bitmap索引。
其中创建前缀索引,建表时注意选择列顺序,列顺序要对应SQL的select 输出,
BLoom filter索引适用于基数高的业务场景。
bitmap索引适用于基数少的业务场景
4.内存表【优先级中】
Doris支持创建内存表,把所有的数据放在内存表里面。
5.物化视图和Rollup【优先级中】
如果没有用上aggregate模型 ,那么可以用上物化视图和ROLLUP加速对数据的访问。物化视图的作用可以对增 量数据进行计算,rollup让数据按指定的粒度进行聚合。
6.分布式join算法【优先级中】
分布式join一共有Colocate join、broadcast join、Bucket shuffle join、shuffle join,如果Doris是单机,也会有netst loop,sort merge join、hash join的算法。
分布式join是针对多表关联的业务分析场景。
- Colocate join性能最佳,但是需要提早对业务处理定义
- broadcast join性能第二,但是需要目标节点有足够的内存。
- Bucket shuffle join性能第三,需要干预系统激活参数。
- shuffle join虽然性能,但是可以随心所欲。
7.减少大宽表,优先星型模型【优先级中】
Doris的基准测试领域,星型模型测试比CK还要好,所以鼓励使用星型模型的方式进行开发。
8.向量化查询引擎【优先级中】
cat /proc/cpuinfo | grep -i AVX
Doris默认就是列式,只要CPU支持AVX指令集,已经就是向量化引擎处理。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




