请看,
mysql> alter table quote  change  column new_field_id  id int(10);
Query OK, 8044657 rows affected (1 min 2.64 sec)
Records: 8044657  Duplicates: 0  Warnings: 0
数据量大了以后,一个简单的操作,更改列名字,都用了1 min 2.64 sec,恐怖呀。

解决方案 »

  1.   

    没办法,MYSQL对于ALTER TABLE中这种字段修改的,后台其实是所表复制了一遍。一种非官方方法,是直接修改quote.frm ,但有风险。
      

  2.   

    alter table 运行时会对原表进行临时复制,在副本上进行更,然后删除原表,再对新表进行重命名。在执行alter table时,其他用户可以阅读原表,但对表的更新和修改操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。临时复制的过程就占用很多时间。