api接口性能優化問題

背景:公司Saas產品列表頁接口響應時間長,列表頁速度體驗差,亟待優化。

 一、接口性能診斷工具Arthas

1.下載及安裝詳見以下鏈接:https://alibaba.github.io/arthas/manual-install.html

2.按1所述步驟,啓動後彈出頁面,點擊connect即可,如下圖

3.輸入命令:trace -j 類的完整路徑名 方法名   ,如下圖

4.參數解釋

 

紅色標註的是整個方法中最耗時的方法;

min是方法執行最少的時間,max是方法執行最多的時間,total是方法執行的總時間,count是方法執行的次數

二、優化方法

1.sql語句優化(mysql數據庫)

使用具體的列而不是使用*;

先EXPLAIN分析一下: sql_no_cache:不使用mysql緩存

查看緩存的命令:SHOW VARIABLES LIKE '%cache%';
                             SHOW STATUS LIKE '%qcache%';

EXPLAIN 
SELECT sql_no_cache c.*,
	u.thumbnail as image_url,
	u.category_id as category_id,
    u.barcode as barcode
FROM tb_product AS u
RIGHT JOIN
	tb_outstock_product AS c
ON
	u.id = c.product_id
WHERE c.del = 0 AND c.corpid = 1 AND c.out_warehouse_id = 1157
ORDER BY CONVERT(c.product_name USING gbk) ASC;

結果如下:沒有使用臨時表

如果使用臨時表的話,則要設法不用臨時表,詳見[產生臨時表的場景]https://www.cnblogs.com/tlijian/p/3750795.html

2.程序優化,根據Arthas提示的方法耗時進行優化,將耗時多的方法針對性優化,同時儘量減少數據庫的連接操作。

3.mysql有緩存,相同的sql語句會查詢緩存,但是最好還是減少查詢相同sql語句。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章