不久之后,我们将需要对生产数据库进行架构更改。我们需要尽量减少这项工作的停机时间,但是,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 以获得更多的机会来加快速度)。
我们计划做的架构更改是向所有表添加一个整数列,并使其成为主键,而不是当前的主键。我们还需要保留“旧”列,因此不能选择覆盖现有值。
什么是尽快完成这项任务的理想设置?