Практически любой из них будет работать (даже если SQLLite не предназначен для использования в параллельной многопользовательской среде, что может быть проблемой ...), поскольку вы не хотите индексировать фактическое содержимое файлы.
Единственным ограничивающим фактором является максимальный размер "пакета" для данной БД (под пакетом я имею в виду запрос / ответ). Обычно эти ограничения составляют около 2 МБ, что означает, что ваши файлы должны быть меньше 2 МБ. Конечно, вы можете увеличить этот лимит, но весь процесс довольно неэффективен, поскольку, например, для вставки файла вам потребуется:
- Прочитать весь файл в память
- Преобразование файла в запросе (что обычно означает его шестнадцатеричное кодирование - таким образом, удваивая размер с начала)
- Выполнение сгенерированного запроса (что само по себе означает - для базы данных - что он должен его проанализировать)
Я бы выбрал простую БД и связанные с ней файлы, сохраненные в соответствии с соглашением об именах, которое облегчает их поиск (например, на основе первичного ключа). Конечно, этот дизайн не является «чистым», но он будет работать намного лучше, а также более прост в использовании.