MySQL でのテーブルメンテナンスは「mysqlcheck」
今日MySQLのデータベースを利用しているアプリケーションの動きが
少し遅いような気がして、「そういえばPostgreSQLのvacuumと同様のものはないか」と
ふと思って調べました。
MySQLでは mysqlcheck -u ユーザー名 -p(パスワード指定の意) {optionを指定}
で行うとのこと。
ひとまず全データベースに対して実行
-A 全データベース
-o optimize を実行
mysqlcheck -A -o -u root -p
これでOK。
処理ログを見ると「Table does not support optimize, doing recreate + analyze instead」
というのが散見する。
これはINNODBはテーブルを作り直しているとの意味。そうなのか。
以下主なオプション指定
-A: 全データベース指定
-a: テーブルを分析
-c: エラーチェック(これが基本)
-o: テーブル最適化
-p: 接続に使用するパスワード
--auto-repair: テーブルが破壊されていた場合、自動で修復
--database: データベースを指定
※データベース+テーブルを指定する場合は
[DB名]␣[テーブル名] と普通に入力すればOK。
もっと調査すれば、詳細なメンテナンスが出来そう。