title | summary | aliases | |
---|---|---|---|
提升 TiDB 建表性能 |
介绍 TiDB 加速建表中的概念、原理、实现和影响。 |
|
TiDB v7.6.0 引入了系统变量 tidb_ddl_version
实现支持加速建表,可提升大批量建表的速度。从 v8.0.0 开始,该系统变量更名为 tidb_enable_fast_create_table
。
通过 tidb_enable_fast_create_table
系统变量开启加速建表后,同时提交到同一个 TiDB 节点的相同 schema 的建表语句会被合并为批量建表语句,以提高建表性能。因此为了提高建表性能,需要尽量连接相同的 TiDB 节点并发创建同一个 schema 下的表,并适当提高并发度。
合并后的批量建表语句在同一个事务内执行,如果其中一个语句失败,所有语句都会失败。
- 在 TiDB v8.3.0 之前的版本中,TiCDC 不支持同步通过 TiDB 加速创建的表。从 v8.3.0 开始,TiCDC 可以正常同步这类表。
TiDB 加速建表目前仅适用于 CREATE TABLE
语句,且该建表语句不带任何外键约束。
你可以通过设置系统变量 tidb_enable_fast_create_table
的值来开启或关闭加速建表的功能。
从 TiDB v8.5.0 开始,新创建的集群默认开启 TiDB 加速建表功能,即 tidb_enable_fast_create_table
默认值为 ON
。如果从 v8.4.0 及之前版本的集群升级至 v8.5.0 及之后的版本,tidb_enable_fast_create_table
的默认值不发生变化。
要开启该功能,将该变量的值设置为 ON
:
SET GLOBAL tidb_enable_fast_create_table = ON;
要关闭该功能,将该变量的值设置为 OFF
:
SET GLOBAL tidb_enable_fast_create_table = OFF;