tencent cloud

腾讯云数据仓库 TCHouse-D

产品简介
产品概述
基本概念
集群架构
产品优势
应用场景
购买指南
计费概述
续费说明
到期与欠费说明
退费说明
配置变更计费说明
快速入门
通过控制台使用腾讯云数据仓库 TCHouse-D
通过客户端使用腾讯云数据仓库 TCHouse-D
操作指南
集群操作
监控和告警配置
账户权限管理
数据管理
查询管理
配置管理
节点管理
日志分析
SQL 工作区
开启资源隔离
开发指南
数据表设计
数据导入
数据导出
基础功能
查询优化
生态扩展功能
API 文档
History
Introduction
API Category
Making API Requests
Cluster Operation APIs
Database and Table APIs
Cluster Information Viewing APIs
Hot-Cold Data Layering APIs
Database and Operation Audit APIs
User and Permission APIs
Resource Group Management APIs
Data Types
Error Codes
云上生态
为子账号授予 CAM 策略
查询加速腾讯云 DLC
实践教程
基本功能使用
高级特性使用
资源规格选型及调优建议
命名规范及库表限制
表设计与数据导入
查询调优
建议规避的用法
通过 JDBC 方式公网访问 TCHouse-D
性能测试
TPC-H 性能测试
SSB 性能测试
TPC-DS 性能测试
常见问题
常见操作问题
常见报错
联系我们
词汇表
产品协议
服务等级协议
隐私政策
数据处理和安全协议

查询调优

PDF
聚焦模式
字号
最后更新时间: 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:此配置默认关闭。并发高,查询结果集较小时效果好。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈