MySQL
では複数のパーティショニングメンテナンスタスクを行うことができます。5.1.MySQLでは
CHECK TABLE
、OPTIMIZE
TABLE
、ANALYZE TABLE
、そして
REPAIR
TABLE
のようなコマンドをパーティショニングされたテーブル用にサポートされてはいません。
代わりに、MySQL5.1.5で実装された ALTER
TABLE
の拡張のいくつかを使用することができます。これらはこのような種類のオペレーションを直接1つ、もしくは複数のパーティションに実行するのに使用できます。以下のリストを参照してください。
REBUILD PARTITIONパーティションを再構築します。パーティションに記憶されているレコードを削除し、再度挿入するのと同じ効果があります。これはデフラグメンテーションのために有効に使えます。
例:
ALTER TABLE t1 REBUILD PARTITION p0, p1;
OPTIMIZE
PARTITIONもしパーティションから多くの行を削除もしくは異なる長さの行を含むパーティショニングされたテーブルに変更を加えた場合、(つまり、VARCHAR
、BLOB
、またはTEXT
カラムを含む)ALTER
TABLE ...OPTIMIZE
PARTITION
を使用してパーティションのデータファイルをデフラグすることによって使用されていないスペースを再利用できます。
例:
ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;
OPTIMIZE PARTITION
をあるパーティションで使用することは
CHECK PARTITION
、ANALYZE
PARTITION
、そして REPAIR
PARTITION
をそのパーティションで作動させることと同義です。
ANALYZE PARTITION:これはパーティションのキーの分散を読み込み・記憶します。
例:
ALTER TABLE t1 ANALYZE PARTITION p3;
REPAIR PARTITIONこれは破壊されたパーティションを修復します。
例:
ALTER TABLE t1 REPAIR PARTITION p0,p1;
CHECK
PARTITIONCHECK TABLE
をパーティショニングされていないテーブルでチェックのため使用できるように、パーティションのエラーをチェックすることができます。
例:
ALTER TABLE trb3 CHECK PARTITION p1;
このコマンドはテーブル t1
のデータやインデックスが p1
破壊されているかを知らせます。この場合、ALTER
TABLE ...REPAIR
PARTITION
を使用してパーティションを修復することができます。
mysqlcheck や myisamchk
ユーティリティを使用してこれらのタスクを達成することができます。これらは、テーブルをパーティショニングすることによって別々の
.MYI
ファイルに生成されています。項7.11. 「mysqlcheck — テーブル メンテナンスと修復プログラム」
を参照してください。