私は主にInnoDBに興味がありますが、MyISAMにも興味があります。
私はinformation_schemaを見回しましたが、このデータはどこにも見当たりませんでした。
MySQL 5.5.16を使用しています。
そのことを伝える直接の制御データはありませんが、設定できるメカニズムがいくつかあります。
バイナリログを有効にしている場合は、 mysqlbinlog からの出力を使用して、すべてのバイナリログに対してrep -i "analyze table"
を実行します。
一般的なログを有効にしている場合は、一般的なログファイルに対してgrep -i "analyze table"
を実行し、コマンドのタイムスタンプを見つけます。
高書き込み、高更新、高削除のボリュームを持つすべてのテーブルに対してANALYZE TABLE
を実行するcronジョブをスケジュールする必要があります。そうすれば、推測作業はありません。
innodb_stats_on_metadata を設定して、InnoDBテーブルがANALYZE TABLE
を必要とする時期を予測できるようにします。 (私のMar 26, 2012
投稿を参照してください: InnoDBテーブルインデックス統計はいつ更新されますか? )
過去に、InnoDBに対してANALYZE TABLE
テーブルを実行しても役に立たないと頻繁に述べてきました。
Jun 21, 2011
: MySQL Query Optimizerはどこからインデックス統計を読み取りますか?Aug 04, 2011
: InnoDBデフォルト設定の最適化Oct 16, 2011
: サイトが停止しないように、突然インデックスを再構築する必要がありますうまくいけば、MECHANISM #4
がおそらく必要です。