Android: хранение файлов в SQLite

Android-приложение работает с некими файлами, которые загружаются с сервера. В SQLite есть таблица, содержащая записи о загруженных файлах с их характеристиками. Кроме того, сами файлы могут кэшироваться в cache-папку, в таблице при этом ставится флаг is_cached, через время неиспользуемые файлы удаляются из кэша.

Приходится синхронизировать данные в таблице с папкой cache. Закралась крамольная мысль просто добавить к таблице столбец content и держать там просто кэшированный Blob и в нужный момент доставать оттуда, а не из ФС, всё равно при использовании файл полностью загружается в память.

В веб-приложениях хранение файлов в базе, это, обычно, моветон. Очень неудобно и неэффективно. Однако, в моём случае, у нас всё равно один процесс, база открыта и я уже читаю из этой таблицы, осталось просто добавить в выборку ещё один столбец.

Вопросы:

  • Могут ли тут быть проблемы с перформансом или ещё чем-то?
  • Как поведёт себя SQLite если в ней хранить часто удаляемые blob'ы?
  • Хранение в папке cache хорошо тем, что пользователь может очистить кэш. Есть ли какой-нибудь хук на эту операцию, чтобы можно было почистить в базе?

Ответы (0 шт):