たとえば、SQLite データベースに定期的にデータを挿入し、データの最初の 50% を消去するとしますが、バキュームは行いません。
今、ファイルの最初の 50% をゼロにしたページのようなものはありますか? データの別のバッチを追加すると、それらのゼロ化されたページに入力されますか?
マニュアルでは、データの断片化について言及しています。
挿入、更新、および削除を頻繁に行うと、データベース ファイルが断片化する可能性があります。つまり、単一のテーブルまたはインデックスのデータがデータベース ファイルに散らばっています。
VACUUM は、各テーブルとインデックスの大部分がデータベース ファイル内に連続して格納されるようにします。場合によっては、VACUUM はデータベース内の部分的に埋められたページの数を減らし、データベース ファイルのサイズをさらに減らすこともあります。
ただし、これによって必ずしもパフォーマンスが低下することを示すわけではありません。それは主に、掃除機をかけることで節約できる無駄なスペースをほのめかしています。
厳密に連続したページのデータで顕著なパフォーマンスの向上はありますか? 断片化されたデータがたくさんあるデータベースに「ひどい」パフォーマンスを期待できますか?