结果集大导致查询很慢, 请帮忙分析下原因

结果集有 1000w,共执行 9s88ms 看 profile 计算部分很快 3s 多,大部分时间都耗费在 OutputFullTime 和 WaitTime 上,请问下这个原因是什么呢?瓶颈时 FE 吗
【详述】问题详细描述
【背景】做过哪些操作?
【业务影响】
【StarRocks版本】2.5.8
【集群规模】例如:3fe + 10be 混部
【机器信息】:96C/384G/万兆
【联系方式】为了在解决问题过程中能及时联系到您获取一些日志信息,请补充下您的联系方式,例如:社区群4-小李或者邮箱,谢谢
【附件】
profile.txt (32.5 KB)

你是通过什么客户端执行的SQL呢,mysql-client还是jdbc客户端之类的呢,如果是mysql-client的话建议输出到文件里会快一些

mysql-client;

mysql-client的话输出成文件会相对快一些,直接输出的话之前使用过mysql和oracle也快不了的。
示例:

SELECT * FROM your_table INTO OUTFILE 'path/to/your_file.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

我把 FE 从云主机(16core32G)迁移到物理机(96core384G)上后单个SQL执行能快不少。但是看监控云主机的网卡带宽并没打满,请问下这个是什么原因呢,为啥迁移到物理机上会快呢

只迁移了FE、BE节点没动吗?你说的单个SQL就是这个limit 1kw的SQL吗?如果是的话你看下profile的差异

是的,就是在某台 BE 上混部了 FE,然后这个sql 直连新的 be 去执行。profile 差别就是 outputfulltime 和 waittime 大幅降低。new_profile.txt (32.1 KB)

集群的架构之前和之后分别是怎样的,比如3FE+3BE分开部署

之前:1FE + 10BE 独立部署。 之后: 1FE + 1Observer + 10 BE。在其中一台 BE 上混部了1个Observer

使用 mysql client 通过这个 ovsrerver 来执行 sql,别通过 FE 执行能快很多

当前在大结果集的情况下,FE和BE之间数据传输存在瓶颈,这块后续会有优化。不同节点FE的SQL耗时不同的问题,是由于节点间的带宽有差异导致。

1赞