運行本地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