PRAGMA incremental_vacuum (1000) удалит только одну страницу, почему? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть база данных test.db и sqlite3.auto_vacuum=incremental однако, когда я вызываю PRAGMA incremental_vacuum(1000) после удаления огромного количества базы данных, incremental_vacuum удаляет только размер одной страницы -4096B or 4K, и я не могу понять, почему это происходит.

Есть ли ограничение на количество страниц, которые нужно удалить?

Есть ли compile_option, который я не знаю, который нужно изменить?

Все идеи приветствуются.

1 Ответ

0 голосов
/ 17 мая 2019

Вы должны попробовать использовать команду VACUUM , это восстановит базу данных, исключив удаленные данные.

Использование PRAGMA incremental_vacuum(1000) приведет к освобождению только тех страниц, которые есть в свободном списке (вы можете использоватьPRAGMA freelist_count для получения количества страниц в свободном списке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...