Android: хранение файлов в SQLite
Android-приложение работает с некими файлами, которые загружаются с сервера. В SQLite есть таблица, содержащая записи о загруженных файлах с их характеристиками. Кроме того, сами файлы могут кэшироваться в cache-папку, в таблице при этом ставится флаг is_cached, через время неиспользуемые файлы удаляются из кэша.
Приходится синхронизировать данные в таблице с папкой cache. Закралась крамольная мысль просто добавить к таблице столбец content и держать там просто кэшированный Blob и в нужный момент доставать оттуда, а не из ФС, всё равно при использовании файл полностью загружается в память.
В веб-приложениях хранение файлов в базе, это, обычно, моветон. Очень неудобно и неэффективно. Однако, в моём случае, у нас всё равно один процесс, база открыта и я уже читаю из этой таблицы, осталось просто добавить в выборку ещё один столбец.
Вопросы:
- Могут ли тут быть проблемы с перформансом или ещё чем-то?
- Как поведёт себя SQLite если в ней хранить часто удаляемые blob'ы?
- Хранение в папке
cacheхорошо тем, что пользователь может очистить кэш. Есть ли какой-нибудь хук на эту операцию, чтобы можно было почистить в базе?