【StarRocks版本】3.0.2
【集群规模】例如:3fe+3be(混部)
看过很多order by查询慢的帖子,感觉大家遇到的问题都不太一样。
单表数据量:将近3亿
排序键:start_time、end_time
分区键:start_time 以小时分区
分桶键:flow_id
执行语句:
select * from a order by start_time desc limit 30; (4.8s)
select * from a order by start_time asc limit 30; (4.6s)
select * from a order by flow_id desc limit 30; (478ms)
之前看一个帖子说他的asc比desc快,但是在我这desc和asc都很慢。测试环境的数据导致每个分区的数据量相差较大,少的有几十行数据,多的有几百万行数据。
想求助一下大佬们,这两个字段的order by查询耗时差别比较大的原因是什么?
常规业务都需要排序分页或者查询topn,除了改写sql还有其他优化方式吗?目前最新版本有没有做相关优化?
最后附上建表语句和profile
orderby-flow_id.txt (29.6 KB) orderby-start_time.txt (29.3 KB) 建表语句.txt (1.3 KB)