mysql alter table会锁定表吗?

时间:2017-09-30 03:56:45

标签: mysql locking alter

当我更改MySQL表时,为我的日志表添加新列。具体说法如下:

alter table log_xxx add column `new_column` smallint NOT NULL after post_date;

如果我在执行此alter语句时执行SQL以插入一些记录,那么上述语句是否会锁定表log_xxx

我做了一些测试,执行insert语句在alter语句处理时仍然没有成功包含新列。所以我不知道alter table add column会不会锁定表?

有没有人知道这个问题?

1 个答案:

答案 0 :(得分:0)

这取决于存储引擎,如果使用InnoDB,它可能会改变表并且不阻止DML操作,如果使用MyISAM,则在alter开始之后开始的更新和写入操作,将被阻止,直到新表准备就绪。

这些链接可能会有所帮助: https://dev.mysql.com/doc/refman/5.7/en/alter-table.html https://dev.mysql.com/doc/refman/5.7/en/innodb-create-index-overview.html