mysql性能优化验分享

我的一个月结统计报表已经优化,性能提升了10~15倍,原先计算1天需要10~15秒,现在只需1秒。计算一个月的数据原先超过180秒,服务器超时,现在也在15~20秒以内完成。


优化思想是多表join的时候,先对数据进行筛选,用尽可能少的数据 join。


例如:
表join之前先用where过滤数据(性能高):
(select * from gr_sp_order o where o.createat>111111 and o.createat<222222  ) t  inner join ( SELECT * from  gr_sp_grouppay where orderNum>=333333 and orderNum<=444444 ) p on t.orderNum=p.orderNum)


表先join 后用where过滤 (性能低):
select * from gr_sp_order o  inner join  gr_sp_grouppay   p on o.orderNum=p.orderNum where o.createat>111111 and o.createat<222222  and p.orderNum>=333333 and p.orderNum<=444444




以上两种表关联查询在数据量少是几乎没有差别,只有在数据量大时,性能差异才能体现出来,店管家刚上线那会性能还好,现在越来越慢的原因也就在此。
我以前使用微软的sqlserver数据库,没有这样的性能差异,现在使用mysql发现存在这个问题,说明各种数据库也存在差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值