嗨,我有mysql rds数据库服务器,当我尝试添加新列时,我的一个表有3 million+
记录,它总是失败并给出以下错误
查询ALTER TABLE user_notifications ADD program_id int(11);
错误Temporary file write failure
。
我的 RDS 数据库实例已db.t2.medium
ALTER TABLE
是重新创建的表,因此在此过程中的某个阶段,系统上将存在表的两个副本。
因此,此操作需要大于data length
大小的可用空间。
您可以在表信息中查看data length
。
有这种替代解决方案,您可以在其中创建一个具有新所需架构的新表,并以块的形式将数据从旧表移动到新表。
MySQL将在使用更改时重新创建表,因此您需要磁盘上有足够的可用空间来复制表的另一个副本。
我怀疑该表很大,因为它有 300 万条记录,而您的磁盘没有足够的空间
本文介绍如何确定表使用的磁盘空间量