首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么phpmyadmin需要这么长时间来执行alter table语句

问为什么phpmyadmin需要这么长时间来执行alter table语句
EN

Stack Overflow用户
提问于 2012-06-16 02:43:44
回答 2查看 491关注 0票数 0

已经一个小时了,我有一个包含400万行的表。我忘记添加列;因此,我编写了一个alter table语句来添加该列。

代码语言:javascript
复制
ALTER TABLE gblah
ADD zipcode varchar(5)

我不确定为什么要花很长时间。

EN

回答 2

Stack Overflow用户

发布于 2012-06-16 02:48:12

MySQL中的任何alter语句都将花费与表中的行数成比例的时间。无论何时修改表,它都需要将该列添加到每条记录中,因此它必须接触每条记录。这不是PHPMyAdmin的函数。此外,无论何时添加列,都应该在应用程序脱机的情况下执行此操作,如果存在任何会阻碍alter语句的锁争用。

虽然4M不是那么多行,但有争用,而且取决于您的结构和数据库引擎,它可能需要一段时间(我认为MyISAM更改花费的时间比innodb长,因为MyISAM需要整个表锁,并且处理并发的能力较差)。

票数 1
EN

Stack Overflow用户

发布于 2012-06-16 03:17:55

如果您通过phpMyAdmin观察MySQL进程,您将看到整个表被复制、更改,然后再复制回来。一张大桌子需要一段时间。此外,如果您没有足够的硬盘空间来制作副本,那么ALTER查询将失败。我学到了在一台小服务器上修改一个2 2GB的表是很困难的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11056482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档