更改HUGE表中列的数据类型.性能问题

Kir*_*ran 8 mysql alter

我想在我的桌子上运行它:

ALTER TABLE table_name MODIFY col_name VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)

但我的桌子很大,它的行数超过6500万(6500万).现在,当我执行时,执行此命令需要将近50分钟.改变表的更好方法是什么?

O. *_*nes 5

嗯,你需要

 ALTER TABLE table_name CHANGE col_name new_name VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)

但是,你是对的,做出改变需要一段时间。确实没有任何更快的方法来更改 MySQL 中的表。

您担心变更期间会出现停机吗?如果是这样,这是一种可能的方法:将表复制到新表,然后更改副本上的列名称,然后重命名该副本。

您可能已经发现,定期更改生产系统中表中的列名称并不是一个好主意。

  • 宣布停工两小时。这样你就不会惹恼每个人,而是在你提前结束休息时间时让他们高兴。 (3认同)