Topik ini menjelaskan ruang lingkup konversi yang didukung untuk operasi DDL CREATE TABLE dalam membuat partisi selama migrasi data dari database MySQL ke tenant MySQL di OceanBase Database.
Sintaksis
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]Operasi yang didukung
Membuat partisi RANGE, LIST, HASH, atau KEY.
Membuat subpartisi HASH atau KEY.
Menentukan kunci partisi berbasis fungsi (ekspresi atau fungsi) atau kunci partisi berbasis kolom (bidang) untuk partisi RANGE, LIST, dan HASH. Menentukan kunci partisi berbasis kolom untuk partisi KEY.
Menentukan opsi PARTITIONS num dan SUBPARTITIONS num.
Operasi yang tidak didukung
Membuat partisi LINEAR HASH atau LINEAR KEY.
Jika pernyataan DDL sinkronisasi untuk membuat partisi mengandung definisi yang tidak didukung, definisi partisi yang dihasilkan akan kosong, tetapi skema tabel tetap dipertahankan (dengan definisi partisi dibuang).
Klausa dan opsi yang diabaikan
Klausa dan opsi berikut akan diabaikan dan tidak akan diselesaikan atau dikonversi ketika ditentukan dalam pernyataan DDL sinkronisasi.
ENGINE
COMMENT
DATA DIRECTORY
INDEX DIRECTORY
MAX_ROWS
MIN_ROWS
TABLESPACE
ALGORITHM (untuk partisi KEY)
PARTITION BY KEY ALGORITHM={1 | 2} (column_list) -> PARTITION BY KEY (column_list)
Batasan
Karena batasan tenant MySQL di OceanBase Database, kesalahan mungkin terjadi ketika pernyataan DDL sinkronisasi dikonversi dan dieksekusi di tenant MySQL di OceanBase Database dalam skenario berikut:
Tenant MySQL di OceanBase Database tidak mendukung penggunaan bidang dengan tipe tertentu sebagai kunci partisi.
Tenant MySQL di OceanBase Database tidak mendukung penggunaan fungsi atau ekspresi tertentu sebagai kunci partisi.