TiDB高速テーブル作成
TiDB v7.6.0 では、テーブル作成の高速化をサポートするシステム変数tidb_ddl_versionが導入され、一括テーブル作成の効率が向上しました。v8.0.0 以降、このシステム変数はtidb_enable_fast_create_tableに名称変更されました。
tidb_enable_fast_create_tableで高速テーブル作成を有効にすると、同じスキーマを持つテーブル作成ステートメントが同じ TiDB ノードに同時にコミットされた場合、テーブル作成パフォーマンスを向上させるために、バッチ テーブル作成ステートメントにマージされます。したがって、テーブル作成パフォーマンスを向上させるには、同じ TiDB ノードに接続し、同じスキーマを持つテーブルを並行して作成し、並行処理数を適切に増やすようにしてください。
マージされたバッチテーブル作成ステートメントは同じトランザクション内で実行されるため、いずれかのステートメントが失敗すると、すべてが失敗します。
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;