我愚蠢地尝试在表中添加一列,我没有足够的空间来复制并且不得不杀死它并扩展我的RDS实例的存储容量以避免站点崩溃。我想再次这样做(这次有足够的磁盘空间)但我似乎无法回到我的预查询免费存储级别。我的查询是创建一个像巨型表的表,添加一个列,然后将旧表的全部内容与null一起插入到新表中。我尝试了CALL mysql.rds_rotate_slow_log;
和CALL mysql.rds_rotate_general_log;
,但是根据我的AWS Cloudwatch面板判断,我的预查询级别仍低于10GB。没有行成功插入新表。是否有一些“清除硬盘缓存”命令或类似的东西?由于它是RDS,我无权访问正在运行它的实例,但我确实拥有主用户和RDS CLI访问权限。
编辑:似乎我的问题可能与巨型ibdata
文件有关,但由于我没有root权限,我无法真正执行{{3中提到的解决方案}}
答案 0 :(得分:2)
解决方案是放弃新表。我认为没有任何内容存储在新表中,因为select count(*) from new_table;
返回0,但我想临时数据无论如何都被绑定到新表中。从数据库结构的角度来看,我不确定这是如何工作的,但幸运的是它做了我想要的。
底线:已杀死的插入内容仍然使用存储空间。
如果有人可以解释为什么会这样,那将对未来有所帮助。