案例分享:Gbase慢sql优化
作为本际云服务器推荐网的小编,为大家介绍一则优化Gbase慢sql的案例。在工作中,我们遇到了一条无法成功执行的sql语句。尝试多次后耗时依然过长,需要进行优化处理。

慢SQL优化步骤
在优化过程中,我们采取了以下步骤:
- 1.尝试去除一个leftjoin条件,等待时长明显减少,但仍需要约1分50秒。
- 2.查看表数据量,a表有四万条记录,b表有将近八千万条记录,并确定查询方式符合逻辑,即小表驱动大表。
- 3.尝试使用in来进行查询,虽然查询时间有一定提升,但由于业务逻辑需要使用大表中多个字段,而in后面只支持单一字段。
- 4.改变思路,查看表的分布方式,发现小表a是随机分布表,而大表b是哈希分布表。在执行计划中,我们发现Motion列有一个BROADCAST步骤。由于小表是随机分布,即使大表是哈希分布也无法走分布键,所以小表拉了复制表,类似于广播,每个节点都有一份复制表。
- 5.测试若将小表加上分布键,是否能提升查询速度。由于Gbase无法在建表后添加分布键,我们新建了一张测试表,通过加单引号的方式改变字段的位置,并将数据导入。测试结果在毫秒级,而未加分布键时需要约1分50秒。同时,我们观察到执行计划中已经没有BROADCAST这个步骤。
结语
通过以上优化步骤,我们成功地优化了Gbase慢sql,也为业务侧提供了反馈建议。希望本次案例分享能为广大读者提供一些实用的参考和启示。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6592.html
