假设我定期将数据插入 SQLite 数据库,然后清除前 50% 的数据,但我不清理。
我现在对文件的前 50% 有类似归零的页面吗?如果我添加另一批数据,我会填写那些归零的页面吗?
手册中提到了数据的碎片化:
频繁的插入、更新和删除会导致数据库文件变得碎片化——单个表或索引的数据分散在数据库文件周围。
VACUUM 确保每个表和索引在很大程度上连续存储在数据库文件中。在某些情况下,VACUUM 还可以减少数据库中部分填充的页数,从而进一步减小数据库文件的大小。
但这并不表明这必然会导致性能下降。它主要暗示可以从吸尘器中节省的浪费空间。
严格连续页面中的数据是否有明显的性能提升?我可以期待一个包含大量碎片数据的数据库的“糟糕”性能吗?