Файл SQLite увеличивается в размерах после удаления старых записей - PullRequest
0 голосов
/ 10 октября 2018

У меня есть база данных SQLite, которую мое приложение использует для хранения некоторых данных.Он может быть очень большим (размером в несколько ГБ), он имеет только 3 столбца: счетчик с автоинкрементом, UUID и двоичный BLOB.Мое приложение отслеживает, сколько строк находится в базе данных, и удаляет самые старые (на основе приращения), когда оно превысило предел строки.

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

Насколько я понимаю, команда DELETE просто пометит удаленные страницы как "свободные страницы", которые можно перезаписать заново.,Несмотря на это, я вижу, что размер файла продолжает расти (хотя и медленнее) при вставке новых строк после того, как достигнут предел строк.Это из-за фрагментации свободных страниц?Могу ли я ожидать, что этот фрагментарный рост прекратится после того, как прошло достаточно много времени?Мое приложение предназначено для непрерывной работы в течение очень долгого времени, и если размер файла увеличивается на каждом INSERT, жесткий диск машины будет заполняться.

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