mysql profilesを使ってsql文の実行計画を確認します。
4472 ワード
From: http://blog.csdn.net/radkitty/article/details/4632289
この機能を使うには、mysqlのバージョンは5.037バージョン以上でなければなりません。そうでなければ、explin方式で検査するしかないです。
profiling機能は、cputioなどより詳細な情報を知ることができます。
show profile のフォーマットは以下の通りです
SHOW PROFFILE[
この機能はデフォルトではオフです。
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)
この機能を使うには、mysqlのバージョンは5.037バージョン以上でなければなりません。そうでなければ、explin方式で検査するしかないです。
profiling機能は、cputioなどより詳細な情報を知ることができます。
show profile のフォーマットは以下の通りです
SHOW PROFFILE[
type
] [、 type
]…] [FOR QUERY] n
] [LIMIT] row_count
[OFFISET] offset
]type
: 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)