Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


19.3.4 パーティションの保守

いくつかのテーブルおよびパーティション保守タスクは、MySQL 5.6 のパーティション化されたテーブルでそのような目的を実現するための SQL ステートメントを使用して実行できます。

パーティション化されたテーブルのテーブル保守は、パーティション化されたテーブルでサポートされる CHECK TABLEOPTIMIZE TABLEANALYZE TABLE、および REPAIR TABLE ステートメントを使用して実現できます。

次のリストで説明しているように、ALTER TABLE へのいくつかの拡張を使用して、1 つ以上のパーティションに対してこのタイプの操作を直接実行できます。

  • パーティションの再構築  パーティションを再構築します。これは、パーティションに格納されているすべてのレコードを削除してからそれらを再度挿入することと同じ効果があります。これはデフラグに役立つことがあります。

    例:

    ALTER TABLE t1 REBUILD PARTITION p0, p1;
    
  • パーティションの最適化  パーティションから多数の行を削除した場合、または可変長行を持つ (つまり、VARCHARBLOB、または TEXT カラムを持つ) パーティション化されたテーブルに多くの変更を行なった場合は、ALTER TABLE ... OPTIMIZE PARTITION を使用して、未使用領域を解放したりパーティションデータファイルをデフラグしたりできます。

    例:

    ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;
    

    指定されたパーティションに OPTIMIZE PARTITION を使用することは、そのパーティションに CHECK PARTITIONANALYZE PARTITION、および REPAIR PARTITION を実行することと同等です。

    一部の MySQL ストレージエンジン (InnoDB を含む) は、パーティションごとの最適化をサポートしません。これらの場合は、ALTER TABLE ... OPTIMIZE PARTITION がテーブル全体を再構築されます。MySQL 5.6.9 以降では、そのようなテーブルでこのステートメントを実行すると、テーブル全体が再構築および分析され、該当する警告が発行されます (Bug #11751825、Bug #42822)。この問題を回避するには、代わりに ALTER TABLE ... REBUILD PARTITION および ALTER TABLE ... ANALYZE PARTITION を使用してください。

  • パーティションの分析  これは、パーティションのキー分布を読み取って格納します。

    例:

    ALTER TABLE t1 ANALYZE PARTITION p3;
    
  • パーティションの修復  これは、破損したパーティションを修復します。

    例:

    ALTER TABLE t1 REPAIR PARTITION p0,p1;
    
  • パーティションのチェック  パーティション化されていないテーブルで CHECK TABLE を使用できるのとほぼ同様に、パーティションのエラーをチェックできます。

    例:

    ALTER TABLE trb3 CHECK PARTITION p1;
    

    このコマンドは、テーブル t1 のパーティション p1 のデータまたはインデックスが破損しているかどうかを通知します。その場合は、ALTER TABLE ... REPAIR PARTITION を使用してパーティションを修復してください。

上記のリストの各ステートメントでは、パーティション名のリストの代わりにキーワード ALL もサポートされます。ALL を使用すると、テーブル内のすべてのパーティションにステートメントが作用します。

パーティション化されたテーブルでは mysqlcheck および myisamchk の使用はサポートされません。

MySQL 5.6 では、ALTER TABLE ... TRUNCATE PARTITION を使用してパーティションを切り捨てることもできます。このステートメントは、TRUNCATE TABLE がテーブルからすべての行を削除するのとほぼ同様に、1 つ以上のパーティションからすべての行を削除するために使用できます。

ALTER TABLE ... TRUNCATE PARTITION ALL はテーブル内のすべてのパーティションを切り捨てます。

ANALYZECHECKOPTIMIZEREBUILDREPAIR、および TRUNCATE 操作は、サブパーティションではサポートされません。


User Comments
Sign Up Login You must be logged in to post a comment.