無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 15 パーティショニング :: 15.3 パーティショニング管理
« 15.2.6 MySQLパーティショニングの NULL 値の取り扱い

15.3.1 RANGE と LIST パーティションの管理 »
Section Navigation      [Toggle]
  • 15 パーティショニング
  • 15.1 MySQL パーティショニングの概要
  • 15.2 パーティショニングのタイプ
  • 15.3 パーティショニング管理
    • 15.3.1 RANGE と LIST パーティションの管理
    • 15.3.2 HASH や KEY パーティションの管理
    • 15.3.3 パーティションのメンテナンス
    • 15.3.4 パーティション情報の取得
  • 15.4 パーティションの刈り込み
  • 15.5 パーティショニングの制約と制限

15.3. パーティショニング管理

[+/-]

15.3.1. RANGE と LIST パーティションの管理
15.3.2. HASH や KEY パーティションの管理
15.3.3. パーティションのメンテナンス
15.3.4. パーティション情報の取得

MySQL 5.1 はパーティショニングされたテーブルの改良方法をいくつか提供しています。存在するパーティションを追加、削除、再定義、結合、そして分離させることができます。これらのアクションの全てが ALTER TABLE コマンドのパーティショニング拡張によって行うことができます。 (構文の定義については項12.1.2. 「ALTER TABLE 構文」 を参照してください)パーティショニングされたテーブルやパーティションそれ自体の情報を取得する方法もあります。続くセクションでこれらのトピックを紹介します。

  • RANGE や LIST によってパーティショニングされたテーブルのパーティション管理にに関する情報については、項15.3.1. 「RANGE と LIST パーティションの管理」 を参照してください。

  • HASH や KEY パーティショニングの管理に関しては、項15.3.2. 「HASH や KEY パーティションの管理」 を参照してください。

  • MySQL 5.1 で提供されるパーティショニングやパーティショニングされたテーブルの収集メカニズムについては、項15.3.4. 「パーティション情報の取得」 を参照してください。

  • パーティションのメンテナンスを行う場合、項15.3.3. 「パーティションのメンテナンス」 を参照してください。

注:MySQL 5.1 では、パーティショニングされたテーブルのパーティションは全て同じ数のサブパーティションを持たなければいけません。また、一度テーブルが作成されてからサブパーティションを変更することは不可能です。

ステートメント ALTER TABLE ... PARTITION BY ... は MySQL 5.1.6 より稼動しています。MySQL 5.1 では、構文的には認められていてもステートメント事態は効果がありませんでした。

テーブルのパーティショニングスキーマを変更するには、ALTER TABLE コマンドを partition_options 節と共に使用することのみがが要求されます。この節は 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 カラム値を用い、以下のステートメントを使用してください。

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

これはテーブルを削除し CREATE TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2; を使用して再作成するのと同様の効果をテーブルの構成にもたらします。

重要MySQL 5.1.7 と MySQL 5.1 のりりーすでは、ALTER TABLE ... ENGINE = ... は影響されたテーブルの全てのパーティションを取り除く動作をしました。 MySQL 5.1.8 に始まり、このステートメントはテーブルに使用されるストレージエンジンだけを変更し、テーブルのパーティショニングスキーマは保たれます。MySQL 5.1.8以降はテーブルのパーティションを取り除くには、ALTER TABLE ... REMOVE PARTITIONING を使用してください。詳細については項12.1.2. 「ALTER TABLE 構文」 を参照してください。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.