如何释放 MySQL Amazon RDS 实例中的空间

Posted

技术标签:

【中文标题】如何释放 MySQL Amazon RDS 实例中的空间【英文标题】:How to free up space in a MySQL Amazon RDS instance 【发布时间】:2015-01-07 11:43:37 【问题描述】:

我们正在使用 Amazon RDS 实例,但可用存储空间已用完。调查这个问题,我们删除了一个不再需要的表。 Amazon 的监控工具显示现在有 1Gb 的可用空间。

进一步调查显示另一个表有 700 万个条目,因此我们删除了其中的 500 万个(使用简单的删除命令)。然而,现在可用存储空间已降至近 1/2 Gb。我们的空间又快用完了,很危险。

我(天真地)假设从表中删除条目会回收空间。为什么不是这样?我是否需要执行某种形式的手动清理操作?为什么执行删除导致使用了近 1/2 Gb 的可用空间(查看表,删除前大小为 2677Mb,现在为 2961Mb!)

谢谢,

菲尔

【问题讨论】:

mysql 将保留删除后保留的空间,但您可以在该空间中插入新行。此外,将记录删除,这可能会导致使用额外的空间。有关删除行的一般信息,请参阅this question。有关 AWS 上的日志文件等的更多信息,请参阅this document 【参考方案1】:

您的数据库中可能有未使用的索引,这可能会占用空间。 Percona 为 MySQL 制作工具和补丁来收集索引使用数据。

检查这些链接:

User statistics(index statistics pt-index usage

你也可以看看这些:

New table_io_waits_summary_by_index_usage table in performance_schema in MySQL 5.6 New INDEX_STATISTICS table in the information_schema

如果您使用 MySQL 5.6 或更高版本,我建议您使用性能模式。你也可以看看MONyog- Mysql Monitoring tool。它包括用于监控 MySQL 服务器不同性能指标的工具,其中有一个磁盘信息功能可能会帮助您解决这个问题。

【讨论】:

以上是关于如何释放 MySQL Amazon RDS 实例中的空间的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 SSL 上的 PHP 连接到 Amazon MySQL RDS 实例

如何获取 Amazon MySQL RDS 证书

Amazon AWS RDS MySQL - 实例和定价

如何在 Spring Boot / Spring Data 中为 Amazon RDS Mysql 启用 SSL?

MySql 本地主机与 Amazon RDS 实例

使用 MySQL Workbench 通过 EC2 实例连接到 Amazon RDS 实例