mysql - 当数据从mysql中删除后,它所占用的空间会发生什么变化?

标签 mysql database file size

我的理解是(如果我错了或者不准确请纠正我),当你从MySQL表中删除数据(比如一整行)时,数据库文件的文件大小不会缩小。如果您有一个 20Gb 的数据库并从中删除了 19Gb 的数据,那么您将不会拥有 1Gb 的数据库文件,它仍然是 20Gb。

文件中数据所在的“空间”发生了什么?它会被空数据替换吗?或者删除的数据是否保留在文件中,但被“标记”为已删除,并且无法通过运行选择查询等常规方式再看到?如果我向数据库添加更多数据,它会进入旧删除数据原来所在的空间,还是会始终占用新空间?

例如,在上面的示例中,如果我从 20Gb 数据库中删除 19Gb,然后添加 5Gb 新数据,那么数据库将是 20Gb 还是 25Gb?

最佳答案

每当插入完成时,它就会成为可重用的可用空间。可以通过OPTIMIZE TABLE命令发布到操作系统。

关于mysql - 当数据从mysql中删除后,它所占用的空间会发生什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942680/

相关文章:

database - 在 C :\Drive 中的客户端计算机上创建数据库时操作系统错误 5(访问被拒绝)

php - 按组列出行数

PHP - 如何测试/检查目录/文件夹是否包含旧文件/文件早于?

c++ - Qt 从文件中打开图像 - 如何知道图像大小

java - 如何将字符串添加到文件的第n行

java - Spring JdbcTemplate 无法从 MySQL 获取插入 ID

mysql - 如何更新MySQL中除某个字段语句外的所有字段?

mysql - SQL选择组查询

mysql - ASP.NET核心: How to create a connection string on Macbook pro

php - 错误 #1241 - 操作数应包含 1 列