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


19.3 パーティション管理

MySQL 5.6 は、パーティション化されたテーブルを変更するためにいくつかの方法を提供しています。既存のパーティションを追加、削除、再定義、マージ、または分割できます。これらのすべてのアクションは、ALTER TABLE ステートメントのパーティショニング拡張を使用して実行できます。パーティション化されたテーブルおよびパーティションに関する情報を取得する方法もあります。以降のセクションでは次のトピックについて説明します。

注記

MySQL 5.6 では、パーティション化されたテーブルのすべてのパーティションに同じ数のサブパーティションが必要であり、テーブルが作成されたあとにサブパーティショニングを変更することはできません。

テーブルのパーティショニングスキームを変更するために必要なことは、partition_options 句付きで ALTER TABLE ステートメントを使用することだけです。この句の構文は、パーティション化されたテーブルを作成する CREATE TABLE で使用されるものと同じで、必ずキーワード PARTITION BY で始まります。次の CREATE TABLE ステートメントを使用して範囲によってパーティション化されたテーブルがあるとします。

CREATE TABLE trb3 (id INT, name VARCHAR(50), purchased DATE)
    PARTITION BY RANGE( YEAR(purchased) ) (
        PARTITION p0 VALUES LESS THAN (1990),
        PARTITION p1 VALUES LESS THAN (1995),
        PARTITION p2 VALUES LESS THAN (2000),
        PARTITION p3 VALUES LESS THAN (2005)
    );

このテーブルをキーによるパーティション化でパーティション化し直して、キーをベースとする id カラム値を使用する 2 つのパーティションに分割するために、次のステートメントを使用できます。

ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;

これは、テーブルを削除してから CREATE TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2; を使用して再作成する場合と同じ効果を、テーブルの構造に対して持ちます。

ALTER TABLE ... ENGINE = ... は、テーブルによって使用されるストレージエンジンのみを変更し、テーブルのパーティショニングスキームはそのままにします。テーブルのパーティショニングを削除するには、ALTER TABLE ... REMOVE PARTITIONING を使用します。セクション13.1.7「ALTER TABLE 構文」を参照してください。

重要

ALTER TABLE ステートメントに使用できるのは、単一の PARTITION BYADD PARTITIONDROP PARTITIONREORGANIZE PARTITION、または COALESCE PARTITION 句のみです。たとえば、あるパーティションを削除して、テーブルの残りのパーティションを再編成する場合は、2 つの別々の ALTER TABLE ステートメントでそうする必要があります (DROP PARTITION を使用するものと REORGANIZE PARTITIONS を使用するもの)。

MySQL 5.6 では、ALTER TABLE ... TRUNCATE PARTITION を使用して、選択した 1 つ以上のパーティションからすべての行を削除できます。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.