mysql profilesを使ってsql文の実行計画を確認します。

4472 ワード

From:  http://blog.csdn.net/radkitty/article/details/4632289
 
この機能を使うには、mysqlのバージョンは5.037バージョン以上でなければなりません。そうでなければ、explin方式で検査するしかないです。
profiling機能は、cputioなどより詳細な情報を知ることができます。
show profile のフォーマットは以下の通りです
SHOW PROFFILE[type] [、  type]…]    [FOR QUERY]  n]    [LIMIT]  row_count [OFFISET]  offsettype:    ALL  | BLOCK IO  | CONTEXT SWECHES  | CPU  | IPC  | MEMORY  | PAGE FAULTS  | SOURCE  | SWAPS
 
この機能はデフォルトではオフです。
 mysql>select@profiling;
+-----------+124@@profiling+-------+124           0_+-----+1 row in set(0.00 sec)
 
機能を開く
mysql>set profiling=1;
 
+-----------+124@@profiling+-------+124           1|+-----+1 row in set(0.00 sec)
 
実行するsql文を入力します。
mysql>select count(*)from sysser;
mysql>select count(*)from sysser;
 
mysql> show profiles/G;************************************1.row*********************************QueryID:1 Duration:0.00007550   Query:select count(*)from sysser 1 row in set(0.00 sec)
 
指定されたQuery_IDで指定されたsql文の実行情報を調べます。
mysql> show profile for query 1;
+------------------------------------------------------------------------------------------------------------------------------------++                         | Duration+-----------------------------------------------------------------------------------ハンティング                       | 0.000028𞓜check query cache for query 124; 0.00008|check priveges on cached  | 0.000009|sending cachect to clien n 0.000023𞓜logging slow query             | 0.000004𞓜cleaning up                    | 0.000003|+------------------------------------+6ローソンin set(0.00 sec)
 
mysql>show profile cpu,block io for query 1;+--------------------------------------------------------------------------------------------------------------------------------------------------------------Status                         | Duration CPU_user 124 CPU_systemブロックops_inブロックops_out|+------------------------------------------------------------------------------------------------------------------------------------------------------------------------                       | 0.000028|     NULL 124       NULL 124         NULL 124          NULL𞓜check query cache for query𞓜0.00000 8|     NULL 124       NULL 124         NULL 124          NULL𞓜check ing priveges on cached  | 0.000009|     NULL 124       NULL 124         NULL 124          NULL_sending cached relt to clien_0.000023|     NULL 124       NULL 124         NULL 124          NULL|logging slow query             | 0.000004|     NULL 124       NULL 124         NULL 124          NULL𞓜cleaning up                    | 0.000003|     NULL 124       NULL 124         NULL 124          NULL(-------------------------------------------------------------------------------------------------+6ローソンin set(0.00 sec)
 
forパラメータがない場合は、最後のステートメントのprofile情報を一覧表示します。
mysql> show profile cpu,block io for query 1;+--------------------------------------------------------------------------------------------------------------------------------------------------------------Status                         | Duration CPU_user 124 CPU_systemブロックops_inブロックops_out|+------------------------------------------------------------------------------------------------------------------------------------------------------------------------                       | 0.000028|     NULL 124       NULL 124         NULL 124          NULL𞓜check query cache for query𞓜0.00000 8|     NULL 124       NULL 124         NULL 124          NULL𞓜check ing priveges on cached  | 0.000009|     NULL 124       NULL 124         NULL 124          NULL_sending cached relt to clien_0.000023|     NULL 124       NULL 124         NULL 124          NULL|logging slow query             | 0.000004|     NULL 124       NULL 124         NULL 124          NULL𞓜cleaning up                    | 0.000003|     NULL 124       NULL 124         NULL 124          NULL(-------------------------------------------------------------------------------------------------+6ローソンin set(0.00 sec)
パラメータを閉じる:
mysql>set profiling=0
 
+-------------------++(|Varable_)name me𞓜Value+-------------------------------+profiling     | オフ   |+---------------+-------+1 row in set(0.00 sec)