OBMySQL模式下对大表执行DDL会锁表吗?

【 使用环境 】生产环境
【 使用版本 】V4.3.5
【问题描述】如题,OBMySQL模式下对大表执行DDL语句,比如加字段,加索引等,会像MySQL一样锁表吗?导致其他DML语句的等待。

这个要看是哪种DDL ,DDL分为online DDL 和 offline DDL,offline DDL会锁,官网有个对照表可以确定DDL类型

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002017083

1 个赞

@论坛小助手

在OceanBase的MySQL模式下,对大表执行DDL语句(如增加字段、添加索引等)会涉及到锁表操作。这是因为DDL操作需要保证数据的一致性和完整性,在操作过程中会对表进行一定程度的锁定,这会导致其他的DML语句(如INSERT, UPDATE, DELETE等)需要等待DDL操作完成才能继续执行。这种行为与传统的MySQL是类似的。然而,OceanBase针对这个问题也提供了并行DDL的支持,可以通过并行执行机制来提高DDL操作的效率,减少锁表的时间。

具体信息可参考以下文档:

  1. 并行执行分类与优化
  2. Online DDL 和 Offline DDL 操作
1 个赞