小编app*_*ree的帖子

在很少或没有停机时间的情况下修改非常大的 mysql 表的列

我需要定期更改 mysql 5.1 中的表,主要是添加列。使用 alter table 命令非常简单。但是我的表现在有多达 4000 万行,而且它们增长得很快……所以那些 alter table 命令需要几个小时。几个月后,我猜他们会花几天时间。

由于我使用的是 amazon RDS,因此我无法使用从服务器然后升级为主服务器。所以我的问题是是否有办法以最少的停机时间做到这一点?如果用户仍然可以使用数据库,我不介意花费数小时甚至数天的操作......他们至少可以在添加列时阅读吗?如果我的应用尝试写入会发生什么?插入还是更新?如果它立即失败,那实际上并没有那么糟糕,如果它只是挂起并导致数据库服务器出现问题,那就是一个大问题..

这一定是一个相当普遍的缩放问题,每个人都需要添加列.. 通常对生产数据库做什么?从 -> 主迁移?

更新- 我忘了提到我正在使用 innodb 存储引擎

mysql innodb database database-administration master-slave

19
推荐指数
2
解决办法
3万
查看次数