更新:2019-10-9:在花费大量时间尝试寻找解决方案后,我终止了 RDS 实例并启动了带有 Mysql 的常规 EC2 实例。欢迎您继续浏览此问题,只是由于我不再使用 Aurora,因此无法验证解决方案。
过去几个月我一直在使用带有 Aurora 引擎的 AWS RDS 实例(R5.large)。
我看到了这个相关问题,但它并没有帮助我找到解决这个问题的方法: 为什么我的 Amazon Aurora 集群上的“已用卷字节数”始终在增加?
我了解这是 Aurora 的工作方式,但我找不到与我的情况相关的解决方案,因为没有选项可以限制实例将使用的存储(卷)。
我了解到,这种事情不会发生在 mySQL@RDS 或 mySQL@EC2 上,仅限于 Aurora。
我正在寻找有关此问题的解决方案,并考虑迁移到常规 mySQL 实例以解决此问题。如果我要使用 mySQL 而不是 Aurora 创建新的 RDS 实例,那么我可以预定义要使用的卷。
实例中只有一个数据库,并且该数据库中只有一个表。我每天都会 TRUNCATE(清空)该表,并向其中插入大约 200-500MB 的数据。
即使在禁用备份之后,每天插入的数据仍会位于迄今为止插入的数据之上,就好像它是自实例启动以来使用的交换存储一样。
这导致报告的使用量超过 6000MB,而实际使用量从未超过 500MB。
每个月在现有数据的基础上添加大约 2GB 的数据。因此,5 年后我将支付超过 100GB 的存储空间费用,即使实际使用量永远不会超过 200-500MB。
SELECT ROUND(SUM(data_length)/1024/1024) AS data_in_mb, ROUND(SUM(index_length)/1024/1024) AS index_in_mb, ROUND(SUM(data_free)/1024/1024) AS free_in_mb FROM INFORMATION_SCHEMA.TABLES;
+------------+-------------+------------+
| data_in_mb | index_in_mb | free_in_mb |
+------------+-------------+------------+
| 290 | 2 | 2210 |
+------------+-------------+------------+
谢谢任何帮助或建议。