off*_*101 3 mysql myisam alter-table
以下是有关需要更改的表格的更多信息:
向这样的大表添加几个新列(最少 2 列)的最佳方法是什么?停机时间最短。如果不是一两天的话,仅使用直接的 ALTER 表命令将需要数小时才能完成。
附加问题:如果新列默认值设置为 NULL 而不是“预定义”值,它会影响添加新列所需的时间长度吗?
要对表进行在线更改,您可以使用pt-online-schema-change
pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=actor
Run Code Online (Sandbox Code Playgroud)
该表在切换新旧表时会被阻塞几秒钟。该表虽然必须有一个主键并且没有触发器。