【发布时间】:2016-02-18 02:07:05
【问题描述】:
我正在尝试减少 MySQL 5.6.23 的 RDS 实例中表的磁盘空间使用量。这是一个包含大约 800 万行和 30 列的 InnoDB 表。其中几个列的类型为TEXT NULL DEFAULT NULL。表如此之大的原因之一是因为不是从该表中删除行,而是通过名为“已删除”的标志列将它们标记为已删除。
阅读有关存储要求的 MySQL 文档后:
http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
似乎TEXT 字段所需的存储取决于字段中文本的长度,而不是固定大小 (L + 2 bytes, where L < 2^16 and where L is the length of the value in bytes)。因此,尽管我在其他地方读到这些字段实际上是固定宽度的,但我处理了大约 50,000 行标记为已删除并将它们的所有 TEXT 列值设置为 null。
但是,MySQL 客户端或 AWS 控制台 RDS 界面报告的磁盘空间没有减少。为什么这没有释放磁盘空间?
【问题讨论】:
标签: mysql amazon-web-services innodb diskspace rds