すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase:パーティションの作成

最終更新日:Jan 19, 2025

このトピックでは、MySQL データベースから OceanBase Database の MySQL テナントへのデータ移行中に、パーティションを作成するための CREATE TABLE DDL 操作でサポートされている変換範囲について説明します。

構文

partition_options:
    PARTITION BY
        { [LINEAR] HASH(expr)
        | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
        | RANGE{(expr) | COLUMNS(column_list)}
        | LIST{(expr) | COLUMNS(column_list)} }
    [PARTITIONS num]
    [SUBPARTITION BY
        { [LINEAR] HASH(expr)
        | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list) }
      [SUBPARTITIONS num]
    ]
    [(partition_definition [, partition_definition] ...)]

partition_definition:
    PARTITION partition_name
        [VALUES
            {LESS THAN {(expr | value_list) | MAXVALUE}
            |
            IN (value_list)}]
        [[STORAGE] ENGINE [=] engine_name]
        [COMMENT [=] 'string' ]
        [DATA DIRECTORY [=] 'data_dir']
        [INDEX DIRECTORY [=] 'index_dir']
        [MAX_ROWS [=] max_number_of_rows]
        [MIN_ROWS [=] min_number_of_rows]
        [TABLESPACE [=] tablespace_name]
        [(subpartition_definition [, subpartition_definition] ...)]

subpartition_definition:
    SUBPARTITION logical_name
        [[STORAGE] ENGINE [=] engine_name]
        [COMMENT [=] 'string' ]
        [DATA DIRECTORY [=] 'data_dir']
        [INDEX DIRECTORY [=] 'index_dir']
        [MAX_ROWS [=] max_number_of_rows]
        [MIN_ROWS [=] min_number_of_rows]
        [TABLESPACE [=] tablespace_name]

サポートされる操作

  • RANGE、LIST、HASH、または KEY パーティションを作成します。

  • HASH または KEY サブパーティションを作成します。

  • RANGE、LIST、および HASH パーティションに関数パーティションキー(式または関数)または列パーティションキー(フィールド)を指定します。KEY パーティションには列パーティションキーを指定します。

  • PARTITIONS num オプションと SUBPARTITIONS num オプションを指定します。

サポートされない操作

LINEAR HASH または LINEAR KEY パーティションを作成します。

重要

同期されたパーティション作成用の DDL 文にサポートされていない定義が含まれている場合、生成されるパーティション定義は空になりますが、テーブルスキーマは保持されます(パーティション定義は破棄されます)。

無視される句とオプション

重要

同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。

  • ENGINE

  • COMMENT

  • DATA DIRECTORY

  • INDEX DIRECTORY

  • MAX_ROWS

  • MIN_ROWS

  • TABLESPACE

  • ALGORITHM (KEY パーティションの場合)

    PARTITION BY KEY ALGORITHM={1 | 2} (column_list) -> PARTITION BY KEY (column_list)

制限事項

重要

OceanBase Database の MySQL テナントの制限により、同期された DDL 文が OceanBase Database の MySQL テナントで変換および実行されるときに、次のシナリオでエラーが返される場合があります。

  • OceanBase Database の MySQL テナントは、特定の型のフィールドをパーティションキーとして使用することをサポートしていません。

  • OceanBase Database の MySQL テナントは、特定の関数または式をパーティションキーとして使用することをサポートしていません。