稚拙な備忘録ですが

へなちょこプログラマやっています。皆さんみたいなしっかりした備忘録は書けませんが宜しくお願いします。

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。

 

もっと調査すれば、詳細なメンテナンスが出来そう。