我的理解是(如果我错了或者不准确请纠正我),当你从MySQL表中删除数据(比如一整行)时,数据库文件的文件大小不会缩小。如果您有一个 20Gb 的数据库并从中删除了 19Gb 的数据,那么您将不会拥有 1Gb 的数据库文件,它仍然是 20Gb。
文件中数据所在的“空间”发生了什么?它会被空数据替换吗?或者删除的数据是否保留在文件中,但被“标记”为已删除,并且无法通过运行选择查询等常规方式再看到?如果我向数据库添加更多数据,它会进入旧删除数据原来所在的空间,还是会始终占用新空间?
例如,在上面的示例中,如果我从 20Gb 数据库中删除 19Gb,然后添加 5Gb 新数据,那么数据库将是 20Gb 还是 25Gb?
最佳答案
每当插入完成时,它就会成为可重用的可用空间。可以通过OPTIMIZE TABLE命令发布到操作系统。
关于mysql - 当数据从mysql中删除后,它所占用的空间会发生什么变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942680/