Допустим, есть база SQLite 3.27.x. В нее ежедневно попадают десятки тысяч записей. Но два раза в сутки (каждые 12 часов) все старые записи, старше недели - удаляются. Носитель - CompactFlash.
Благодаря тому что это CF флэшка, хочется верить, что фрагментация не приведет к замедлению более чем в два-три раза скорости чтения базы (выполняя запросы, не просто копирование файла), если сделать кэш в ОЗУ побольше (есть соответствующая pragma).
Но стоит ли мне бороться с фрагментацией страниц, врубать всякие там vacuum? Есть старая реализация базы данных в виде отдельных файлов самопального текстового формата, наверняка они тоже за годы работы системы тоже будут увеличивать (увеличивали) фрагментацию самой файловой системы. До сих пор никто не жаловался на замедление.
Или при таком режиме, удаляя сразу большой шмат данных за 12 часов, будет очищаться большое сплошное пространство внутри файла и фрагментация на краешках этих временных интервалов будет ничтожной? Фрагментация подозреваю касается лишь БД с произвольно добавляемыми и удаляемыми записями, у меня же всё плоско, монотонно и последовательно.
Данные просто добавляются монотонно последовательно, единственное что происходит в плане редактирования - тупо удаление старых записей за период 12 часов одним махом. В процессе прочистки отдельных таблиц - новые данные не добавляются.