sql优化1-报表效率问题

情况:

负责的其中一张报表,左连接八张表,其中子查询多个,where条件多个,一分钟只能查询1000条左右数据,要进行优化

想法:

前期想,除了已有的索引,再加入适量索引,最终结论是被pass掉,不合适

之后做法:

1.查询字段
首先查询字段从少增加,包括子查询,依次增加,找到那个属性或者子查询获得的时间长

2.多表连接
我们使用的左连接,保证主表信息(但要保证从表只有一条信息进行对接)
从基础表,依次左连接,或者取出连接表,找出响应时间长的表

3.where条件
在条件中,依次注释条件,找出时间最长的限制条件

最终结果,发现一张基础信息表之中,调用过多,获取时间最长(机构基础信息表数据过多五千多条),
最终想的是,把依赖的字段从这个机构表中拿出来,在主表中加个字段,放进去,效果还行,(改一下之前主表插入修改的逻辑)

结论:我的做法就是,依次增加条件或者字段,找出响应时间最长的字段、或者表,看看是否能够更改部分逻辑,进行优化,目前3000条数据,20秒就能查出

当然还有另一种情况处理:
拉大表,跑批,报表数据从大表中获取,(但是数据肯定是看跑批的情况,部分是不能及时拉出的)

希望所写的你们能用到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值