我在一个表中删除了数千行,但 (C:) 中的可用空间从 40 Gb 减少到 15 Gb。发生了什么?它不应该上升吗?
我已经重新启动了 MySQL Server 甚至我的电脑,但问题仍然存在。我正在使用 Windows 10 和 MySQL 8.0
最佳答案
删除行并不能保证回收可用磁盘空间。 MySQL 倾向于将表的数据存储在单个文件中,或者每个磁盘一个文件。通常它只是将此文件中的行标记为已删除,因此如果您之后插入新行,它们会占用此空间。
要回收磁盘空间,MySQL 将不得不完全重写这些数据文件,因为(廉价地)从大文件中间删除一些数据是不可能的。
我能想到的实际空间较少的一个原因是,您可能启用了二进制日志,但在不知道哪些文件大小增加的情况下很难确定是什么占用了这些额外空间。
真正回收此磁盘空间的一种方法是从头开始重建整个表。
关于mysql - 为什么在删除 MySQL 表的某些行后我的可用磁盘空间减少了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094052/