我对带有 MyISAM 引擎的 MySQL 在删除后处理空闲/空白空间的方式以及插入新记录时的行为有疑问。
例如,考虑一个新的空数据库(例如,假设是 10 kb)。
插入 10000 条记录后(假设每条记录占用 1 kb),它在文件系统上的总大小变为 10010 kb。
然后,在删除 5000 条记录后,即使记录数减半,它在文件系统上的大小仍为 10010 kb(这并不奇怪,这是正常行为)。
然后,OPTIMIZE 命令可以对数据库进行“碎片整理”,并通过重新组织其数据来回收可用空间。
但是,如果我完全忽略 OPTIMIZE 命令并插入 2000 条新记录(因此,仍然存在 5000 条 + 2000 条新记录 = 总共 7000 条记录),MySQL 是否会将先前删除留下的可用空间用于新记录(意味着10010 kb 的 DB 大小不会改变)还是将新记录“附加”到 DB(这意味着文件系统上的 DB 大小将增长到,比如说,12010 kb)?
谢谢!:)