讓MySQL為我們記錄執行流程
我們可以開啟profiling,讓MySQL為我們記錄SQL陳述句的執行流程
-
查看profiling引數
shell > select @@profiling; -
進行更改
shell > set profiling = 1; -
執行陳述句
select * from employees limit 100; -
查看該陳述句執行流程
show profile;
分別是
- 啟動
- 權限檢查
- 打開表
- 初始化表
- 鎖系統
- 優化查詢
- 統計
- 優化
- 執行
- 發送資料
- 結束
- 查詢結束
- 關閉表
- 釋放
- 清理
-
請注意上述命令與下面的不同
show profiles;
顯示完成每條指令的所花費的時間,上面
show profile是對一條指令每個階段花費時間的統計,這個統計的所有時間的總和就等于show profiles中對應命令的Duration,
補充
(0812)
-
查詢profile設定
show variables like ‘%profil%’; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | have_profiling | YES | | profiling | OFF | | profiling_history_size | 15 | +------------------------+-------+ 3 rows in set (0.10 sec) -
基于會話基本開啟
set profiling = 1; -
查詢某條陳述句的性能消耗情況
show profile for query 1;
# query 1 是 query id
-
查詢cpu,記憶體和I\O消耗情況
show profile cpu,memory,block io for query 1; -
查看查詢程序每一步對應的原始碼檔案、函式名、源檔案行數
show profile source for query 1; -
show profiles 在mysql5.7.2中已經被廢除,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/22847.html
標籤:MySQL
上一篇:SQL基礎隨記1 SQL分類 常用函式 ALL ANY EXISTS IN 約束
下一篇:MySQL 查詢陳述句執行程序
