【发布时间】:2011-11-27 19:25:55
【问题描述】:
我只是想在数据库中的表 (main_table) 中添加一个名为“位置”的列。我运行的命令是
ALTER TABLE main_table ADD COLUMN location varchar (256);
main_table 包含 > 2,000,000 行。它持续运行2个多小时,仍未完成。
我尝试使用mytop
监视此数据库的活动以确保查询没有被其他查询进程锁定,但似乎没有。应该需要那么长时间吗?实际上,我只是在运行此命令之前重新启动了机器。现在这个命令仍在运行。我不知道该怎么办。
【问题讨论】:
-
这需要很长时间,因为索引和表中存在的行数。注意:varchar(255)
-
我想你应该为它指定一个默认值。可能这就是它需要时间的原因吗?
-
在这种情况下它默认为
NULL,绝对不是为什么它需要很长时间。 -
MySQL 8.0.12 有一个
ALTER TABLE .. ADD COLUMN .. ALGORITHM=INSTANT
标签: mysql performance alter