如何从MySQL大表中删除列

时间:2012-10-16 08:00:25

标签: php mysql query-optimization

我有一个250GB的500M行MySQL表,并希望删除其中一个列。 该列是VARCHAR(255)。我希望尽可能少地执行此操作停机时间。想法:

  1. 我可以添加任何可以帮助此操作的配置吗?
  2. 在每行之前迭代php并删除其中的值会不会更好?
  3. 之后是否需要OPTIMIZE TABLE?
  4. 这种程序的合理时间估算是什么?

1 个答案:

答案 0 :(得分:0)

为了确保最短的停机时间,我会亲自备份并恢复到备用数据库,然后在再次恢复之前执行“删除列”。

  1. link

  2. 可能会这样,但会花费更长的时间,更容易出错。

  3. 是的,好主意,也考虑先使用ANALYZE TABLE

  4. OPTIMIZE TABLE; 当DBMS脱机以进行计划维护时,应运行OPTIMIZE命令。该命令是非标准SQL。