我正在使用由 MySQL 数据库支持的 Rails 应用程序。其中一个更常用的模型由一个包含超过 200,000,000 行(并且还在增长)的表提供支持。我们已经意识到它的设置方式是不可扩展的。
我目前正在开发的功能需要我向该表添加几个新列以及一个复合索引。我的同事在她的本地开发机器上进行了测试,每列大约需要一个小时(甚至还没有测试添加索引)。
我们正在考虑采用不同的方法,构建一个包含所需列的新表,将旧表中的数据转储到新表中,然后将 Rails 模型指向新表。感觉像是解决一个迫在眉睫的大问题的短期解决方案,但我很好奇是否有人对如何解决这个问题有见解。
我们还谈到了归档表的旧记录。这是一个可以大量写入和读取的表,但仅限于最近的记录(应用程序可能永远不需要对超过一个月的记录做任何事情)。
ALTER TABLE table1 ADD col1 INT, ADD col2 CHAR(2), ADD INDEX (col1, col5);
. 更多关于ALTER