【发布时间】:2013-04-09 14:47:42
【问题描述】:
我有一个包含 500 万行的大型 MySQL InnoDB 表。我需要在表中添加一列,该列将具有默认的 int 值。
最好的方法是什么?正常的 alter table 命令似乎需要很长时间。有没有更好的方法呢?基本上我想知道是否有更快或更有效的方法。
如果表有外键引用,除了alter table还有什么办法吗?
任何帮助表示赞赏。
【问题讨论】:
-
这可能需要很长时间,因为正在进行数据更改。您是否设置了默认值?
-
是的.. 我设置了一个默认值。该列是整数,默认值为 1。
-
就可以了。添加列是元数据操作,通常很快,但是通过设置默认值,它变成了需要对表的每一行执行的数据操作。对于一张大桌子,这需要一些时间。
标签: mysql sql performance