OPTIMIZE PARTITION は、パーティションまたはサブパーティション内の未使用領域を解放し、データファイルのデフラグメントを行います。大量の行をパーティションから削除した後、または可変長カラム(VARCHAR、BLOB、TEXT)を含む行を更新した後に実行してください。
OPTIMIZE PARTITION を実行するタイミング
以下の状況で OPTIMIZE PARTITION を実行します。
パーティションまたはサブパーティションから大量の行を削除する
可変長カラム型(VARCHAR、BLOB、またはTEXT)を含む行の更新
構文
ALTER TABLE table_name OPTIMIZE PARTITION {partition_names | ALL}partition_names の指定方法は以下のとおりです。
{partition_name | subpartition_name}個別のパーティション名を列挙する代わりに、ALL キーワードを使用すると、テーブル内のすべてのパーティションを一度に最適化できます。
パラメーター
| パラメーター | 説明 |
|---|---|
table_name | パーティション分割されたテーブルの名前です。スキーマ修飾(例:schema.table_name)を指定することも可能です。 |
partition_name | 最適化対象のパーティションの名前です。 |
subpartition_name | 最適化対象のサブパーティションの名前です。 |
実行例
特定のパーティションおよび特定のサブパーティションを最適化します。
ALTER TABLE sales_range_list OPTIMIZE PARTITION q1_2012, p5;単一のサブパーティションを最適化します。
ALTER TABLE sales_range_list OPTIMIZE PARTITION p5;テーブル内のすべてのパーティションを最適化します。
ALTER TABLE sales_range_list OPTIMIZE PARTITION ALL;