Допустим, я периодически вставляю данные в базу данных SQLite, затем очищаю первые 50% данных, но не очищаю их.
У меня теперь есть что-то вроде обнуленных страниц для первых 50% файла? Если я добавлю еще одну порцию данных, заполню ли я эти обнуленные страницы?
В руководстве упоминается фрагментация данных:
Частые вставки, обновления и удаления могут привести к фрагментации файла базы данных, когда данные для одной таблицы или индекса разбросаны по всему файлу базы данных.
VACUUM обеспечивает непрерывное хранение каждой таблицы и индекса в файле базы данных. В некоторых случаях VACUUM также может уменьшить количество частично заполненных страниц в базе данных, еще больше уменьшив размер файла базы данных.
Но это не означает, что это обязательно приведет к снижению производительности. В основном это намекает на потраченное впустую пространство, которое можно было бы спасти от уборки пылесосом.
Есть ли заметный прирост производительности для данных на строго смежных страницах? Могу ли я ожидать «ужасной» производительности от базы данных с большим количеством фрагментированных данных?