GoDaddy 說明

我們已盡最大努力為您翻譯本頁面。 我們也有提供英文頁面。

檢閱速度較慢的MySQL查詢

您已啟用慢查詢記錄並有記錄可以檢視。如果您尚未啟用記錄功能,您可以在這裡找到相關步驟。

分析記錄

記錄位置:
/var/log/slow-queries.log
注意:如果您在此位置找不到記錄,請驗證您的my.cnf項目,並確認MySQL在變更之後已重新啟動。
格式:
#時間:210905 6:33:11#用戶@主機:dbuser [dbname] @主機名稱[1.2.3.4]#查詢時間:12.116250鎖定時間:0.000035行數:0行已檢查:201565使用dbname; SET timestamp = 1409898791;慢查詢於此...

如果您有上百格式的數百個條目的記錄,日誌可能不堪重負。為了讓記錄更易閱讀,請使用mysqldumpslow解析記錄。

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
該輸出將包含重要信息,如時間行數查詢
計數:2時間= 20.54s(41s)鎖定= 0.02s(0s)行= 12547802(0),dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id ='214380'ORDER By site_id DESC LIMIT 0,2 COUNT: 1時間= 21.74s(21s)鎖定= 0.01s(0s)行= 12547802(0),dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id ='214380'ORDER BY site_id DESC LIMIT 0,2 COUNT:1時間= 23.86s(23s)鎖定= 0.20s(0s)行= 12547802(0),dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id ='214380'ORDER BY site_id DESC LIMIT 0,2

查看上面的範例,我們有1個查詢的執行時間為20-24秒。這會導致您的網站出現問題,從載入時間緩慢到發生逾時錯誤(無盡旋轉)等等。該查詢正在檢查的12,547,802行。在有超過1200萬列的表格上執行的大型查詢(即:select *),可能會導致不良的使用者體驗。最佳化查詢(例如:選取「咖啡桌」)或減少檢查的資料列(例如封存舊資料)會加快查詢速度。

如果記錄檔較大,請執行mysqldumpslow並將輸出儲存至檔案。如此一來,您便可以透過grepfind等其他檔案操作工具來檢視。

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

後續步驟

檢視慢速查詢記錄之後,您應該應該了解需要修復的問題查詢。如果使用高資源的MySQL,如果您的網站仍然很慢,您可能需要調整MySQL ,以便更好地利用伺服器的資源。

記錄完畢後,請務必停用MySQL慢查詢記錄。啟用記錄功能會不必要地消耗MySQL資源,並有可能填滿您的磁碟(出現錯誤的查詢)。

GoDaddy主機服務

我們的伺服器專家可以啟用/停用MySQL慢查詢記錄功能,並最佳化MySQL。若要進一步了解此服務, GoDaddy嚮導可為您提供協助。

更多資訊

若要進一步了解GoDaddy提供的主機服務,請參閱我們的主機服務選單