提升 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 工具的兼容性

  • 在 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;

文档内容是否有帮助?