运行本地Mysql实例。在我的数据库中,我拼错了一个列名(延伸到街道)。所以我写了一个查询:MySQL更改EMPTY表上的列名,需要很长时间
alter table address change Stret Street VARCHAR(20);
该表刚创建并包含零记录。我知道有各种线索问为什么需要这么长时间,但所有的表都有100,000多行。我一无所有!为什么这个查询需要1小时13分15.76秒?
我知道我可以放弃并重新创建表格,我只是好奇为什么这个“简单”的改变可能需要这么长时间?
编辑:找到原因。我正在调试一个使用这个数据库的程序,并在中间停止(不终止程序)来更改列名。一旦我停止了tomcat,一切都是即时的。所以大概这张表被锁定了,所以查询被阻止了。我正在使用InnoDB。感谢大家。
什么是您使用的DBEngine? InnoDB,MyIsam ...?另外,整个数据库有多大? – Muc 2013-02-08 19:27:07
服务器日志中的任何内容?什么版本的MySQL?什么O/S和文件系统? – eggyal 2013-02-08 19:28:11
也许表被锁定?你能重现它,并仔细观察它吗? – 2013-02-08 19:29:02