
# 数据超过了RDS for MySQL实例的最大存储容量怎么办
#### 问题现象
RDS数据库的磁盘空间满，导致实例变为只读状态，应用无法对RDS数据库进行写入操作，从而影响业务正常运行。
通过磁盘空间占用分布发现占用高的空间，如何通过DBA助手查看磁盘空间分布请参见[管理磁盘容量](https://support.huaweicloud.com/usermanual-rds-mysql/rds_08_0028.html)。
图1磁盘空间分布   
![](https://support.huaweicloud.com/rds-mysql_faq/zh-cn_image_0000002736501639.png "点击放大")
#### 问题原因
- 业务数据增加。
- 数据空间占用过大。
- 由于大量的事务和写入操作产生了大量的RDS for MySQL Binlog日志文件。
- 应用中存在大量的排序查询，产生了过多的临时文件。
 
#### 解决方案
1. 随着业务数据的增加，原来申请的数据库磁盘容量可能会不足，建议用户[扩容磁盘空间](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_topic_scale_cluster.html)，确保磁盘空间足够。
   如果原有规格的磁盘已是最大，请先[升级规格](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_topic_scale_rds.html)。
   云盘实例可以设置[存储空间自动扩容](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0039.html)，在实例存储空间达到阈值时，会触发自动扩容。
   
2. 针对数据空间过大，可以删除无用的历史表数据。
   1. 如果实例变为只读状态，您需要先[解除只读](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_topic_scale_cluster.html)状态；如果实例非只读状态，则可以直接执行删除操作。
   
   2. 查看物理文件大小Top50库表，识别可以删除的历史表数据，具体操作请参见[管理磁盘容量](https://support.huaweicloud.com/usermanual-rds-mysql/rds_08_0028.html)。
   
   3. 可在业务低峰期对碎片率高的表执行optimize优化，以便释放空间： 清理整张表使用**DROP** 或**TRUNCATE** 操作；删除部分数据，使用**DELETE** 操作，如果是执行**DELETE** 操作，需要使用**OPTIMIZE TABLE**来释放空间。
      
    
3. 如果是RDS for MySQL Binlog日志文件占用过多，可以[清理本地Binlog日志](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0037.html)，来释放磁盘空间。
4. 针对大量排序查询导致的临时文件过大，建议优化SQL查询。 查询数据库[慢SQL](https://support.huaweicloud.com/usermanual-rds-mysql/rds_08_0030.html)和[Top SQL](https://support.huaweicloud.com/usermanual-rds-mysql/rds_08_0031.html)，分析数据量大，行数多，响应时间长的SQL语句，并进行优化。
   
5. 您还可以订阅实例健康日报来获取SQL及性能分析结果，包括慢SQL分析、全量SQL分析、性能 \& 磁盘分析、性能指标趋势图，当发生风险点时及时收到诊断报告。 具体操作请参见[管理诊断日报](https://support.huaweicloud.com/usermanual-rds-mysql/rds_08_0035.html)。
   
 
