
# DDL快速超时
#### 操作场景
在MySQL社区中，所有DDL操作均需获取MDL锁。当DDL操作在等待MDL锁时，会阻塞后续的DML操作。
TaurusDB在执行ALTER TABLE、CREATE INDEX、DROP INDEX操作时，可以设置MDL等锁时间（即DDL超时时间），实现上述操作在等待MDL锁时快速超时，避免阻塞后续DML操作。
#### 约束与限制
内核版本为2.0.45.230900及以上版本支持使用该功能。内核版本的查询方法请参见[如何查看云数据库 TaurusDB实例的版本号](https://support.huaweicloud.com/taurusdb_faq/taurusdb_faq_0141.html)。
#### 开启DDL快速超时
表1参数说明 
| **参数名称**                  | **级别**         | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| rds_ddl_lock_wait_timeout | Global，Session | 控制当前会话或者全局的DDL超时时间。 - 时间单位为秒，范围为1秒到31536000，默认值为31536000，相当于不开启。  - 对于DDL的等锁超时，其真实超时时间是lock_wait_timeout和rds_ddl_lock_wait_timeout的最小值。  - 对于DDL过程中InnoDB层的加表锁超时（行锁不在该考虑范围），其真实超时时间是innodb_lock_wait_timeout和rds_ddl_lock_wait_timeout的最小值。   |
   
#### 使用示例
1. 首先开启一个客户端，执行加锁操作，示例如下。
   图1加锁操作   
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000001928570169.png "点击放大") 
2. 通过如下命令，查看DDL快速超时功能的状态。 **show variables like "%rds_ddl_lock_wait_timeout%";**
   图2查看状态   
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000001928570177.png "点击放大")
   如上图所示，查询到"rds_ddl_lock_wait_timeout"的值是"31536000"，此时是默认值，相当于不开启DDL快速超时功能。如果此时等锁，就会卡在这里。
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000001928649829.png "点击放大")
   如果需要开启DDL快速超时功能，可以将这个值设置为预期值，操作请参考[3]。
   
3. 设置参数。
   执行如下命令，设置"rds_ddl_lock_wait_timeout"参数值。
   **set rds_ddl_lock_wait_timeout=1;**
   图3设置参数   
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000001882571064.png "点击放大") 
4. 然后执行如下创建索引命令，发现DDL操作会快速超时失败，符合预期。
   **alter table lzk.t_lzk drop index indexa;**
   图4执行创建索引命令   
   ![](https://support.huaweicloud.com/kerneldesc-taurusdb/figure/zh-cn_image_0000001882730960.png "点击放大") 
 
