KyleBlog.cn 文章 标签 关于
文章 标签 关于

MySQL线上改表,如何避免锁表影响业务?

默认情况下,对MySQL的表执行ALTER TABLE语句时,MySQL会把表给锁上,导致该表期间所有针对该表的访问都被block(阻塞),此时业务必然是受影响的。对于超大表,ALTER TABLE语句的执行往往很耗时间,这对线上业务的影响可能不可接受。

通过特殊的参数,无锁改表

示例:

ALTER TABLE table_001 ADD colx int, ALGORITHM=INPLACE, LOCK=NONE;

关键在于,给ALTER TABLE语句的结尾,加上了ALGORITHM=INPLACE, LOCK=NONE

注意,MySQL5.7+版本才支持该特性!

本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/mysql_no_lock_alter

发布日期:2022-08-21 联系作者