我有一个包含 160 万行的表。
然后我在该表上添加一个字段。
我正在使用 hostgator 作为托管。你知道,他们有 16 核 CPU。
结果: 1. phpmyadmin 没有工作 10 分钟 2. 数据库重新联机后,我想添加的字段未添加。3. 幸运的是,我没有接到来自 hostgator 的投诉电话。
我不在乎它很慢。我知道它很慢。这是 160 万行。我只想做一次。
这是因为我使用了innodb引擎吗?
命令很简单:
Alter table tablebusiness add column `Prominent` int(10) NOT NULL
我收到此错误:
#2013 - 查询期间与 MySQL 服务器失去连接
我不需要快速运行此操作
我需要它运行一次。
我想我可以将表复制到其他地方,然后将旧表切换到新表,但 innodb 有级联,我不知道该怎么做。
其他更新:Hostgator 很生气。不能怪他们。我一定使用了巨大的 CPU 能力。
在我看来,有一种修改表格的正确方法。也许先在维护模式下关闭数据库之类的。也许先创建一个表的副本。
ALTER
在这么大的桌子上不管Engine_type
遵循此方法可避免停机并加快操作速度:
设置奴隶
停止复制。
对奴隶进行 ALTER
让奴隶赶上主人
您还可以参考 MySQL Performance 博客中的这篇文章:
http://www.mysqlperformanceblog.com/2008/03/27/using-mmm-to-alter-huge-tables/