通過show profile語句,可以檢視正在執行的SQL以及相應的耗時情況。讓我們能夠更清楚地了解SQL執行的過程。常用于了解資料庫伺服器的性能情況。
通過hava_profiling參數,能夠看到目前MySQL是否支援profile。
SELECT @@have_profiling
預設profiling是關閉的,可以通過set語句在Session級别開啟profiling。
set profiling=1
執行一個count(*)查詢。
SELECT count(*) from payment
執行完畢後,通過show profiles語句檢視SQL的query ID。
show profiles;
通過show profile for query 語句檢視執行過程中線程的每個狀态和消耗的時間。
show profile for query 3
在擷取到最消耗時間的線程狀态後,MySQL支援進一步選擇all、cpu、block io、context switch、page faults等明細類型來檢視MySQL在使用什麼資源上耗費了過高的時間。例如 檢視 cpu耗費時間:
show profile能夠在做SQL優化時幫助我們了解時間都耗費到哪裡去,MySQL5.6則可以通過trace檔案進一步向我們展示優化器是如何選擇執行計劃的。trace放到一篇講解。