ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLEtbl_name[,tbl_name] ...
ANALYZE TABLE
はテーブルのキーの分布を分析、格納します。分析の最中に、テーブルは
MyISAM のリード
ロックを利用してロックされます。InnoDB
には、テーブルは書き込みロックでロックされます。このステートメントは
MyISAM と InnoDB
テーブルと共に機能します。MyISAM
テーブルにとっては、このステートメントは
myisamchk --analyze
を利用する事と同じです。
解析が InnoDB
内でどのように機能するのかという事に関する情報については、項13.5.16. 「InnoDB テーブル上の制約」
を参照してください。
MySQL は、定数以外の何かに対して接合を実行した時、どの順番でテーブルが接合されるべきかを決める為に格納されたキー分布を利用します。
このステートメントはテーブルに
SELECT と INSERT
権限を要求します。
ANALYZE TABLE
は次のカラムを利用して結果セットを返します。
| カラム | 値 |
Table |
テーブル名 |
Op |
いつも analyze
|
Msg_type |
status、error、info、または
warning の1つ |
Msg_text |
メッセージ |
SHOW INDEX
ステートメントを利用して格納されたキー分布を確認する事ができます。詳しくは
項12.5.4.17. 「SHOW INDEX 構文」 を参照してください。
もしテーブルが前回の ANALYZE
TABLE
ステートメント以降変更されていなければ、そのテーブルは再解析されません。
ANALYZE TABLE
ステートメントは、任意の
NO_WRITE_TO_BINLOG
キーワード(またはそのエイリアス
LOCAL)が利用されない限り、バイナリ
ログに書きこまれます。これは、複製マスタとして機能している
MySQL サーバ上で利用される ANALYZE
TABLE
ステートメントが、複製スレーブにデフォルトで複製される為に行われます。
