TiDB 高速テーブル作成
TiDB v7.6.0 では、テーブル作成の高速化をサポートするシステム変数tidb_ddl_version
が導入され、バルク テーブル作成の効率が向上しました。v8.0.0 以降では、このシステム変数の名前がtidb_enable_fast_create_table
に変更されています。
tidb_enable_fast_create_table
で高速テーブル作成を有効にすると、同じ TiDB ノードに同時にコミットされた同じスキーマのテーブル作成ステートメントがバッチ テーブル作成ステートメントにマージされ、テーブル作成のパフォーマンスが向上します。したがって、テーブル作成のパフォーマンスを向上させるには、同じ TiDB ノードに接続し、同じスキーマのテーブルを同時に作成し、同時実行性を適切に高めるようにしてください。
マージされたバッチ テーブル作成ステートメントは同じトランザクション内で実行されるため、そのうちの 1 つのステートメントが失敗すると、すべてが失敗します。
TiDBツールとの互換性
- TiDB v8.3.0 より前では、 ティCDC
tidb_enable_fast_create_table
によって作成されたテーブルの複製をサポートしていません。v8.3.0 以降では、 TiCDC はこれらのテーブルを適切に複製できます。
制限
パフォーマンス最適化は、 CREATE TABLE
ステートメントでのみテーブル作成に使用できるようになり、このステートメントには外部キー制約を含めることはできません。
テーブル作成を高速化するには、 tidb_enable_fast_create_table
を使用します。
システム変数tidb_enable_fast_create_table
の値を指定することにより、テーブル作成のパフォーマンス最適化を有効または無効にすることができます。
TiDB v8.5.0 以降では、新しく作成されたクラスターに対して高速テーブル作成機能がデフォルトで有効になっており、 tidb_enable_fast_create_table
がON
に設定されています。v8.4.0 以前のバージョンからアップグレードされたクラスターの場合、デフォルト値のtidb_enable_fast_create_table
は変更されません。
テーブル作成のパフォーマンス最適化を有効にするには、この変数の値をON
に設定します。
SET GLOBAL tidb_enable_fast_create_table = ON;
テーブル作成のパフォーマンス最適化を無効にするには、この変数の値をOFF
に設定します。
SET GLOBAL tidb_enable_fast_create_table = OFF;