online ddl是否“将job队列中的DDL语句对应的表全部锁住为只读状态”

官方文档中,online ddl的描述如下:
即数据库在执行 DDL 语句时,通过一定的方法,使得 DDL 执行不阻塞用户业务,且能够保证用户业务可在 DDL 执行期间提交修改,在执行过程中保证对应对象的数据正确性与一致性。
请问各位老师,online ddl是否将job队列中的DDL语句对应的表全部锁住为只读状态?因为online ddl虽然可以在DDL执行的过程中提交修改,但提交不等于马上执行。
我不清楚“将job队列中的DDL语句对应的表全部锁住为只读状态”这句描述是否准确。

不准确,既然说了online ddl ,那必然类似于mysql 里面inplace 的多版本 ddl,或者类似于gt的对象切换的ddl,总之锁表肯定是不会的。。。你可以自己测试一下不就好了嘛。。。

不马上执行不就相当于阻塞住了吗

这句话不对

我也觉得这句话不对,但官方说这句话是正确的。

我理解这里的不阻塞,指的是提交DDL 不报错,但可能不会马上执行,因为ONLINE DDL会在tikv有队列,按提交的先后顺序执行。

不阻塞指的是不阻塞业务发来的 DML

没有锁住

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。