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より前のバージョンでは、 TiCDC
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;