让我们说我会定期将数据插入到SQLite数据库中,然后清除前50%的数据,但我不会真空。
我现在为文件的前50%设置了清零页面吗? 如果我添加另一批数据,我是否填写了那些归零的页面?
手册提到数据碎片:
频繁的插入,更新和删除可能导致数据库文件碎片化 - 单个表或索引的数据散布在数据库文件周围。
VACUUM确保每个表和索引在很大程度上连续存储在数据库文件中。在某些情况下,VACUUM还可以减少数据库中部分填充页面的数量,从而进一步减小数据库文件的大小。
但它并没有表明必然会因此而降低性能。 它主要暗示浪费的空间可以避免吸尘。
严格连续页面中的数据是否有明显的性能提升? 我可以期待"可怕的"具有大量碎片数据的数据库的性能?
答案 0 :(得分:3)
SQLite会自动重用免费页面。
仅当
时,碎片页面才会导致性能下降只有一种方法可以确定您的应用是否适用:测量它。