Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


MySQL 8.0 リファレンスマニュアル  /  ...  /  ストレージエンジンに関連するパーティショニング制限

このページは機械翻訳したものです。

24.6.2 ストレージエンジンに関連するパーティショニング制限

MySQL 8.0 では、パーティショニングサポートは実際には MySQL Server によって提供されるのではなく、テーブルストレージエンジンの所有するパーティショニングハンドラまたはネイティブパーティショニングハンドラによって提供されます。 MySQL 8.0 では、InnoDB ストレージエンジンのみがネイティブのパーティショニングハンドラを提供します。 つまり、パーティション化されたテーブルは、ほかのストレージエンジンを使用して作成できません。

注記

MySQL Cluster NDB ストレージエンジンは、ネイティブパーティショニングサポートも提供しますが、MySQL 8.0 では現在サポートされていません。

ALTER TABLE ... OPTIMIZE PARTITION は、InnoDB を使用するパーティションテーブルでは正しく機能しません。 そのようなテーブルの場合は、代わりに ALTER TABLE ... REBUILD PARTITION および ALTER TABLE ... ANALYZE PARTITION を使用してください。 詳細は、セクション13.1.9.1「ALTER TABLE パーティション操作」を参照してください。

ユーザー定義のパーティション分割と NDB ストレージエンジン (NDB Cluster).  KEY (LINEAR KEY を含む) によるパーティショニングは、NDB ストレージエンジンでサポートされる唯一のパーティショニングタイプです。 「NDB Cluster」の通常の状況では、[LINEAR] KEY 以外のパーティション化タイプを使用して「NDB Cluster」テーブルを作成することはできず、作成しようとするとエラーで失敗します。

例外 (本番用ではない): NDB Cluster SQL ノード上の new システム変数を ON に設定することで、この制限をオーバーライドできます。 これを行う場合、[LINEAR] KEY 以外のパーティション化タイプを使用するテーブルは本番でサポートされないことに注意してください。 「このような場合は、KEY または LINEAR KEY 以外のパーティション化タイプのテーブルを作成して使用できますが、これは完全にリスクがあります」

NDB テーブルに定義できるパーティションの最大数は、クラスタ内のデータノードとノードグループの数、使用中の NDB Cluster ソフトウェアのバージョン、およびその他の要因によって異なります。 詳細は、NDB とユーザー定義のパーティション化を参照してください。

NDB テーブルのパーティションごとに格納できる固定サイズデータの最大量は 128 TB です。 以前は 16 GB でした。

ユーザーパーティション化された NDB テーブルが次の 2 つの要件のいずれかまたは両方を満たさなくなる CREATE TABLE ステートメントおよび ALTER TABLE ステートメントは許可されず、エラーで失敗します。

  1. テーブルに明示的な主キーが存在する必要があります。

  2. テーブルのパーティショニング式に指定されたすべてのカラムが主キーの一部である必要があります。

例外.  ユーザーパーティション化された NDB テーブルが空のカラムリストを使用して (つまり、PARTITION BY KEY() または PARTITION BY LINEAR KEY() を使用して) 作成された場合、明示的な主キーは必要ありません。

パーティション化されたテーブルをアップグレードする.  アップグレードを実行する場合は、KEY によってパーティション化されたテーブルをダンプしてリロードする必要があります。 InnoDB 以外のストレージエンジンを使用するパーティション化されたテーブルは、MySQL 5.7 以前から MySQL 8.0 以降にアップグレードできません。ALTER TABLE ... REMOVE PARTITIONING を使用してこのようなテーブルからパーティション化を削除するか、アップグレード前に ALTER TABLE ... ENGINE=INNODB を使用して InnoDB に変換する必要があります。

MyISAM テーブルの InnoDB への変換の詳細は、セクション15.6.1.5「MyISAM から InnoDB へのテーブルの変換」 を参照してください。