Doris生产环境做sql查询的时候需要注意什么?

提问者:帅平 问题分类:数据库
Doris生产环境做sql查询的时候需要注意什么?
1 个回答
小馋兔
小馋兔
做sql查询的时候需要注意:
1、避免select *,建议指定需要查询的列,例如select col0,col1 from tb1
2、避免全表扫描,建议增加过滤的谓词,例如select col0,col1 from tb1 where id=123,select col0,col1 from tb1 where dt>'2024-01-01'
3、避免大数据量的下载,如果要使用,强制使用分页,select col0,col1,col2,...,col50 from tb order by id limit 0,50000
4、分页操作需要加上order by,要不然是无序的
5、避免过渡使用一些函数或者表达式,例如:select count(1) from aaa where tdate >= regexp_extract("TIME:1996-01-02 20:00:00", "(\d{4}-\d{2}-\d{2})", 1); 可以写成 select count(1) from aaa where tdate >= "1996-01-02"
6、JOIN查询多个表需要指定连接条件
7、使用AND条件而不是OR
8、使用类型一致的字段join,避免使用float、double类型join,可能会导致结果不准确
9、考虑使用物化视图加速查询
10、利用cache加速查询(Page cache,建议开启,可以加速数据扫描场景,如果内存有冗余,可以尽可能调大限制,默认是mem_limit*20%,Query cache,建议开启,可以加速单表或多表JOIN的聚合场景,注意query cahce查询中不能包含 rand、random、uuid 和 sleep 等不确定性 (Nondeterminstic) 函数,Data Cache,用于存算分离和湖分析场景,建议这两个场景下默认开启)
发布于:1个月前 (04-19) IP属地:四川省
我来回答