您好,我有mysql rds数据库服务器,我的一个表有3 million+
记录,当我尝试添加新列时,它总是失败,并给出以下错误
查询ALTER TABLE user_notifications ADD program_id int(11);
错误Temporary file write failure
。
我的RDS DB实例是db.t2.medium
发布于 2018-05-16 19:50:30
ALTER TABLE
是对表的重新创建,因此在此过程中的某个阶段,系统上将存在该表的两个副本。
因此,执行此操作所需的空闲空间将大于data length
大小。
您可以在表信息中查看data length
。
有一个alternate solution,您可以在其中创建一个具有新的所需模式的新表,并将数据从旧表分块移动到新表。
发布于 2018-05-16 19:44:15
在使用alter时,MySQL将重新创建表,因此磁盘上需要有足够的可用空间来存储该表的另一个副本。
我怀疑表很大,因为它有300万条记录,而您的磁盘没有足够的空间
This article展示了如何确定一个表使用了多少磁盘空间
https://stackoverflow.com/questions/50369955
复制相似问题