■CHECK TABLE
http://dev.mysql.com/doc/refman/5.1/ja/check-table.html
CHECK TABLE はテーブルのエラーを確認します。CHECK TABLE は MyISAM、InnoDB、
そして ARCHIVE テーブルにのみ機能します。MySQL 5.1.9 から、CHECK は CSV
テーブルにも有効になりました。
MyISAM テーブルに対しては、キー統計もまた更新されます。

mysql> CHECK TABLE T01;
+———-+——-+———-+———-+
| Table | Op | Msg_type | Msg_text |
+———-+——-+———-+———-+
| test.T01 | check | status | OK |
+———-+——-+———-+———-+
1 row in set (0.00 sec)

mysql>

■REPAIR TABLES
http://dev.mysql.com/doc/refman/5.1/ja/repair-table.html
REPAIR TABLE は破損された可能性があるテーブルを修復します。これはデフォルトで、
myisamchk –recover tbl_name と同じ効果を持っています。REPAIR TABLE は MyISAM と ARCHIVE
テーブルに対して機能します。MySQL 5.1.9 から、REPAIR は CSV テーブルにも有効になりました。

■ANALYZE TABLES (Update table’s index statistics)
http://dev.mysql.com/doc/refman/5.1/ja/analyze-table.html
ANALYZE TABLE はテーブルのキーの分布を分析、格納します。
分析の最中に、テーブルは MyISAM のリード ロックを利用してロックされます。
InnoDB には、テーブルは書き込みロックでロックされます。
このステートメントは MyISAM と InnoDB テーブルと共に機能します。
MyISAM テーブルにとっては、このステートメントは myisamchk –analyze を利用する事と同じです。

mysql> analyze table T01;
+———-+———+———-+———-+
| Table | Op | Msg_type | Msg_text |
+———-+———+———-+———-+
| test.T01 | analyze | status | OK |
+———-+———+———-+———-+
1 row in set (0.00 sec)

■OPTIMAIZE TABLES
http://dev.mysql.com/doc/refman/5.1/ja/optimize-table.html
しテーブルの大部分を削除したり、変数長行で何箇所もテーブルを
変更した場合は(VARCHAR、VARBINARY、BLOB、または TEXT カラムを持つテーブル)、
OPTIMIZE TABLE を利用しなければいけません。
OPTIMIZE TABLE は MyISAM と InnoDB テーブルに対して のみ 機能します。
これは、NDB ディスク データ テーブルを含むその他のストレージ エンジンを
利用して作成されたテーブルには機能 しません。

—– MYISAM —–
mysql> OPTIMIZE TABLE T_TEST;
+—————-+———-+———-+—————————–+
| Table | Op | Msg_type | Msg_text |
+—————-+———-+———-+—————————–+
| WINDOWS.T_TEST | optimize | status | Table is already up to date |
+—————-+———-+———-+—————————–+
1 row in set (0.00 sec)

—– INNODB —–
mysql> OPTIMIZE TABLE T01;
+———-+———-+———-+———-+
| Table | Op | Msg_type | Msg_text |
+———-+———-+———-+———-+
| test.T01 | optimize | status | OK |
+———-+———-+———-+———-+
1 row in set (0.05 sec)

mysql>

■mysqlcheck
http://dev.mysql.com/doc/refman/5.1/ja/mysqlcheck.html
mysqlcheckのファンクションはmyisamchkと似ていますが、
作動方法が異なります。実質的な作動方法の違いは、mysqlcheckはmysqld
サーバが作動中の時に使用されなければいけません。
myisamchkはこのサーバが作動していない時に使用品kればいけません。
mysqlcheckを使用することの利点は、テーブルのチェックや修復時に
サーバを停止させなくてすむことです。
mysqlcheckはSQLステートメントCHECK TABLE、REPAIR TABLE、ANALYZE TABLE、
そしてOPTIMIZE TABLEをユーザにとって便利な方法で使用します。
実行したいオペレーションに対してどのステートメントを使用するか決定し、
実行のためサーバにステートメントを送信します。

[root@localhost ~]$ mysqlcheck –analyze test T01 -u root -ppassword
test.T01 OK
[root@localhost ~]$

—– MYISAM —–
[root@localhost WINDOWS]# mysqlcheck –optimize WINDOWS T_TEST -u root -ppassword
WINDOWS.T_TEST Table is already up to date
[root@localhost WINDOWS]#

[root@localhost WINDOWS]# mysqlcheck –repair WINDOWS T_TEST -u root -ppassword
WINDOWS.T_TEST OK
[root@localhost WINDOWS]#

[root@localhost WINDOWS]# mysqlcheck –repair WINDOWS -u root -ppassword
WINDOWS.Brokerage OK
WINDOWS.Channel OK
WINDOWS.ConfidenceTerm OK
WINDOWS.DetailCompany OK
WINDOWS.DetailForeignExchange OK

—– INNODB —–
[root@localhost WINDOWS]# mysqlcheck –optimize test T01 -u root -ppassword
test.T01 OK
[root@localhost WINDOWS]#

※ optimizeはmemory tableに利用出来ません。

[root@localhost WINDOWS]# mysqlcheck –repair test T01 -u root -ppassword
test.T01
note : The storage engine for the table doesn’t support repair

■myisamchk (MYISAM ONLY) テーブルにアクセスが無い事を確認
http://dev.mysql.com/doc/refman/5.1/ja/myisamchk.html
myisamchk ユーティリティはユーザのデータベース テーブルの情報を収集し、
チェック、修復、もしくは最適化します。myisamchk は MyISAM
テーブルとともに作動します(データやインデックスを記憶するための
.MYD や .MYI テーブル)。

[root@localhost WINDOWS]# myisamchk –analyze T_TEST.MYI
Checking MyISAM file: T_TEST.MYI
Data records: 1 Deleted blocks: 0
– check file-size
– check record delete-chain
– check key delete-chain
– check index reference
– check record links
[root@localhost WINDOWS]#

[root@localhost WINDOWS]# myisamchk –recover T_TEST
– recovering (with keycache) MyISAM-table ‘T_TEST’
Data records: 1
[root@localhost WINDOWS]#

※「誰も利用していない状態にしておく」
※「サービス停止をした方が良い」
※「オンラインの場合は、メンテナンス対象テーブルをロックする」

『起動時にMYISAMのテーブルを自動的にRecoverする為のオプション』
起動方法① mysqld –myisam-recover=QUICK
オプションファイル(my.cnf)に記入② –myisam-recover

Comments are closed.

Post Navigation