Из FAQ по SQLite :
(12) Я удалил много данных, но файл базы данных не стал меньше.Это ошибка?
Нет.Когда вы удаляете информацию из базы данных SQLite, неиспользуемое дисковое пространство добавляется во внутренний «свободный список» и используется повторно при следующей вставке данных.Дисковое пространство не потеряно.Но он также не возвращается в операционную систему.
Если вы удалили много данных и хотите сжать файл базы данных, запустите команду VACUUM.VACUUM восстановит базу данных с нуля.Это оставит базу данных с пустым свободным списком и файлом минимального размера.Однако обратите внимание, что запуск VACUUM может занять некоторое время (около полсекунды на мегабайт в системе Linux, где разрабатывается SQLite), и он может использовать вдвое больше временного дискового пространства, чем исходный файл во время работы.
Начиная с SQLite версии 3.1, альтернативой использованию команды VACUUM является режим автоматического вакуума, включаемый с помощью прагмы auto_vacuum.
Нет ничего плохого в том, чтобы иметь несколько свободных страниц, еслиони занимают значительное количество места.Вам решать, где заканчивается «ничего плохого» и начинается «значимое», в зависимости от потребностей вашего приложения.