记GBase8a一次简单的典型sql优化

原文地址:https://www.gbase.cn/community/post/3549

某客户反映一条业务测试sql查询缓慢(3节点集群),百万级数据量用时6-8s,不满足小于1秒的业务需求!由于客户刚使用8a不久,希望远程进行优化演示。

客户sql也比较简单,为两表关联分页查询,sql如下:

SELECT * FROM AAAA a,BBBB b WHERE a.AAC001_JY = to_char(b.AAC001_jy) AND a.AAB301 like concat(‘5106’,‘%’) AND a.ywlx= ‘1’ limit 0,100;

优化过程:

1、首先检查a/b表的表结构,发现表a为hash分布表,分布列AAC001_JY,表b为随机分布表

2、表a的AAC001_JY列为varchar数据类型,表b的AAC001_jy列为double数据类型

基于以上两点,给出优化建议如下:

将表b重建为hash分布表,选择AAC001_jy为分布列,同时将AAC001_jy字段数据类型调整为varchar。

进行上述调整后,sql执行时间降低到1s左右,上下波动,继续优化对于语句中like concat(‘5106’,‘%’)写法颇为陌生(后查询资料为mybaits的语法),将其调整整为常规like '5106%‘后,查询时间稳定在500ms左右

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值