一则sql优化实现接口耗时下降30倍的优化案例

业务场景:mysql

也测的业务,如上图,经过捕获业务的涉及的接口以下:sql

查询接口耗时大于7s,已是很是的慢性能

经验提示:测试

通常接口响应时间慢的问题,最简单的方式就是监控接口相关的sql是否存在问题优化

开启mysql的慢查询监控:3d

 

这两个sql加起来,大体等于接口的响应时间,证实问题猜的没错,问题就是这两个sql查询慢致使的问题7s左右blog

验证sql是否有问题:索引

 

查看这个表的执行计划:接口

 

 

发现d表走了全表扫描,直接查询60多万的数据,确定会很慢table

因为d表已经存在orgId存在索引,考虑给o表添加索引

ALTER table t_debt_overview ADD INDEX IDX_orgId(`orgId`);

 

如今扫描的行数减小了,只扫描必要的4999行

 

 

另外的sql问题也解决了

不用压测,这个性能问题就能够解决

总结:因此在性能测试的过程当中,不必定非要执行压测才能发现性能问题,通常在性能压测前,简单的执行一下业务,看看是否存在耗时比较长的业务,提早优化,提升压测的效率

相关文章
相关标签/搜索