一則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問題也解決了

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

總結:因此在性能測試的過程當中,不必定非要執行壓測才能發現性能問題,通常在性能壓測前,簡單的執行一下業務,看看是否存在耗時比較長的業務,提早優化,提升壓測的效率

相關文章
相關標籤/搜索