【发布时间】:2010-10-13 20:47:17
【问题描述】:
很快我们将需要对生产数据库进行架构更改。我们需要尽量减少这项工作的停机时间,但是,ALTER TABLE 语句将运行相当长的一段时间。我们最大的表有1.5亿条记录,最大的表文件是50G。 所有表都是 InnoDB,并且它被设置为一个大数据文件(而不是一个文件每个表)。 我们在 8 核机器、16G 内存和 RAID10 配置上运行 MySQL 5.0.46。
我有一些 MySQL 调优的经验,但这通常侧重于来自多个客户端的读取或写入。在 Internet 上可以找到很多关于这个主题的信息,但是,关于(临时)调整 MySQL 服务器以加速 InnoDB 表上的 ALTER TABLE 或 INSERT INTO 的最佳实践的信息似乎很少。 . SELECT FROM(我们可能会使用它而不是 ALTER TABLE 以获得更多机会来加快速度)。
我们计划进行的架构更改是向所有表添加一个整数列,并使其成为主键,而不是当前的主键。我们还需要保留“旧”列,因此不能覆盖现有值。
让这项任务尽快完成的理想设置是什么?
【问题讨论】:
标签: mysql alter-table performance