3

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

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

1 回答 1

0

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

  1. 关联

  2. 可能是,但我会说这需要更长的时间并且更容易出错。

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

优化表;OPTIMIZE 命令应在 DBMS 脱机以进行计划维护时运行。该命令是非标准 SQL。

于 2012-10-16T08:05:52.207 回答