Я проектирую небольшое серверное приложение с локальным хранилищем данных, и sqlite3, кажется, является способом управления постоянными данными. Но меня беспокоят злонамеренные пользователи, которые знают внутреннюю логику c и могут обманом заставить сервер создать (и впоследствии удалить) множество записей таким образом, чтобы на каждой странице данных оставалось несколько действительных записей. Размер базы данных может взорваться довольно скоро.
Следуя документации и рекомендациям вроде https://blogs.gnome.org/jnelson/2015/01/06/sqlite-vacuum-and-auto_vacuum/, подразумевается, что даже auto_vacuum = incremental не поможет мне в этом сценарии, потому что он эффективен только для выпущенных страниц, но не для использованных страниц с внутренними пробелами (то есть фрагментацией).
Есть ли хороший способ сообщить sqlite о консолидации таких данных на лету?
VACUUM операция невозможна из-за долговременной глобальной блокировки БД.