您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關MySQL 5.5中SHOW PROFILE、SHOW PROFILES語句怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
SHOW PROFILE 和 SHOW PROFILES 語句顯示 MySQL 數據庫語句的資源消耗情況。
需要注意的是:這兩條命令均顯示當前會話的SQL資源消耗情況,不能顯示其他會話的資源消耗情況。
--需要打開Profiling參數
mysql> show variables like 'profil%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| profiling | OFF |
| profiling_history_size | 15 |
+------------------------+-------+
2 rows in set (0.10 sec)
mysql> set profiling = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> show session variables like 'profil%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| profiling | ON |
| profiling_history_size | 15 |
+------------------------+-------+
2 rows in set (0.00 sec)
SHOW PROFILES顯示最近發送到MySQL服務器的語句。顯示語句的條數由profiling_history_size參數設定,默認值是15,最大值是100,將參數的值設為0并不會關閉profiling功能。除了SHOW PROFILE 和 SHOW PROFILES,其他的語句都會顯示在列表中。
SHOW PROFIL會顯示一條語句的具體信息。如果沒有指定FOR QUERY語句,輸出結果會顯示最后執行的語句。如果指定了FOR QUERY和語句編號,則會顯示指定語句的信息。語句編號對應SHOW PROFILES顯示結果中的Query_ID字段。LIMIT語句會限制輸出的行數。默認,SHOW PROFILE語句只顯示狀態和運行時間這兩個字段,狀態字段和SHOW PROCESSLIST里面的狀態字段相似。
--示例
mysql> select * from t9;
mysql> select * from t_arc1 limit 10;
mysql> show profiles;
+----------+------------+-------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------+
| 1 | 0.00019375 | select * from t9 |
| 2 | 0.00023150 | select * from t_arc1 limit 10 |
+----------+------------+-------------------------------+
2 rows in set (0.00 sec)
mysql> show profile for query 2;
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000058 |
| checking permissions | 0.000005 |
| Opening tables | 0.000011 |
| System lock | 0.000006 |
| init | 0.000015 |
| optimizing | 0.000003 |
| statistics | 0.000011 |
| preparing | 0.000010 |
| executing | 0.000002 |
| Sending data | 0.000094 |
| end | 0.000003 |
| query end | 0.000003 |
| closing tables | 0.000003 |
| freeing items | 0.000007 |
| logging slow query | 0.000001 |
| cleaning up | 0.000002 |
+----------------------+----------+
16 rows in set (0.00 sec)
mysql> show profile cpu for query 2;
+----------------------+----------+----------+------------+
| Status | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| starting | 0.000058 | 0.000000 | 0.000000 |
| checking permissions | 0.000005 | 0.000000 | 0.000000 |
| Opening tables | 0.000011 | 0.000000 | 0.000000 |
| System lock | 0.000006 | 0.000000 | 0.000000 |
| init | 0.000015 | 0.000000 | 0.000000 |
| optimizing | 0.000003 | 0.000000 | 0.000000 |
| statistics | 0.000011 | 0.000000 | 0.000000 |
| preparing | 0.000010 | 0.000000 | 0.000000 |
| executing | 0.000002 | 0.000000 | 0.000000 |
| Sending data | 0.000094 | 0.000000 | 0.000000 |
| end | 0.000003 | 0.000000 | 0.000000 |
| query end | 0.000003 | 0.000000 | 0.000000 |
| closing tables | 0.000003 | 0.000000 | 0.000000 |
| freeing items | 0.000007 | 0.000000 | 0.000000 |
| logging slow query | 0.000001 | 0.000000 | 0.000000 |
| cleaning up | 0.000002 | 0.000000 | 0.000000 |
+----------------------+----------+----------+------------+
16 rows in set (0.00 sec)
--查看SQL解析執行過程中每個步驟對應的源碼的文件、函數名以及具體的源文件行數
MariaDB [test]> show profile source for query 31\G
*************************** 1. row ***************************
Status: starting
Duration: 0.000034
Source_function: NULL
Source_file: NULL
Source_line: NULL
*************************** 2. row ***************************
Status: checking permissions
Duration: 0.000005
Source_function: check_access
Source_file: sql_parse.cc
Source_line: 6043
關于“MySQL 5.5中SHOW PROFILE、SHOW PROFILES語句怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。