更新时间:2025-11-25 GMT+08:00
DDL快速超时
功能介绍
在MySQL社区中,所有DDL操作均需获取MDL锁。当DDL操作在等待MDL锁时,会阻塞后续的DML操作。
TaurusDB在执行ALTER TABLE、CREATE INDEX、DROP INDEX操作时,可以设置MDL等锁时间(即DDL超时时间),实现上述操作在等待MDL锁时快速超时,避免阻塞后续DML操作。
开启DDL快速超时
|
参数名称 |
级别 |
描述 |
|
rds_ddl_lock_wait_timeout |
Global,Session |
控制当前会话或者全局的DDL超时时间。
|
使用示例
- 首先开启一个客户端,执行加锁操作,示例如下。
图1 加锁操作
- 通过如下命令,查看DDL快速超时功能的状态。
show variables like "%rds_ddl_lock_wait_timeout%";
图2 查看状态
如上图所示,查询到“rds_ddl_lock_wait_timeout”的值是“31536000”,此时是默认值,相当于不开启DDL快速超时功能。如果此时等锁,就会卡在这里。

如果需要开启DDL快速超时功能,可以将这个值设置为预期值,操作请参考3。
- 设置参数。
执行如下命令,设置“rds_ddl_lock_wait_timeout”参数值。
set rds_ddl_lock_wait_timeout=1;
图3 设置参数
- 然后执行如下创建索引命令,发现DDL操作会快速超时失败,符合预期。
