在執行性能測試的時候,問題總千奇百怪的。我這裏整理了一些經常使用的性能測試時查看問題的方法。數據庫
一.SQL語句沒有引用索引:服務器
執行性能測試時,服務器的運行狀況下:網絡
日誌沒有打印錯誤,可是TPS很低,如只有100-120(單個接口請求的性能測試,TPS通常會在550-60000這樣,除非程序很複雜,那麼TPS會小一些)。這種狀況下應該先查看SQL的語句是否是存在問題:性能
如:測試
查詢語句,是否有索引,索引有沒有起到做用;(是查詢語句還要看數據表中的總數據)優化
案例:我先前測試的時候,有個查詢接口就是存在這樣的問題,TPS很低,是由於沒有索引致使的,加入索引後,TPS從之前的110到6000這樣。spa
二.SQL語句索引沒有起到做用:日誌
執行性能測試時,服務器的運行狀況下:code
CPU 很高的監控圖blog
日誌沒有打印錯誤,可是TPS很低,須要查看索引沒有起到做用,是否遍歷了不少無關的表格數據。
案例:我先前測試的時候,部分接口就是存在這樣的問題,TPS很低,CPU很高,有索引,可是SQL查詢的語句寫得有問題,遍歷不少數據,致使引用的索引失效了。
能夠用EXPLAIN來統計一個查詢,SQL會遍歷多少次的問題,程序的語句致使大量的表掃描。使用的索引區分度低,表達式中是否帶非,致使索引失效,rows的值越大,說明遍歷次數越多:
EXPLAIN SELECT * FROM tb_hlf_pos_cashier where account=’ XXXXX ’;
(以上都是在性能測試的時候,SQL語句優化後,性能提升的途徑。固然我只是找到問題,具體的SQL語句優化,是開發的同事優化的,因此這裏我也只能講解我瞭解的知識,不少詳細的優化代碼我沒研究過)