一則sql優化實現接口耗時降低30倍的優化案例


業務場景:

也測的業務,如上圖,通過捕獲業務的涉及的接口如下:

查詢接口耗時大於7s,已經是非常的慢

經驗提示:

一般接口響應時間慢的問題,最簡單的方式就是監控接口相關的sql是否存在問題

開啟mysql的慢查詢監控:

 

這兩個sql加起來,大致等於接口的響應時間,證明問題猜的沒錯,問題就是這兩個sql查詢慢導致的問題7s左右

驗證sql是否有問題:

 

查看這個表的執行計划:

 

 

發現d表走了全表掃描,直接查詢60多萬的數據,肯定會很慢

由於d表已經存在orgId存在索引,考慮給o表添加索引

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

 

現在掃描的行數減少了,只掃描必要的4999行

 

 

另外的sql問題也解決了

不用壓測,這個性能問題就可以解決

總結:所以在性能測試的過程中,不一定非要執行壓測才能發現性能問題,一般在性能壓測前,簡單的執行一下業務,看看是否存在耗時比較長的業務,提前優化,提高壓測的效率

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM