Сохранение файла в файловой системе VS в базе данных - PullRequest
3 голосов
/ 25 июля 2011

Я разрабатываю сервлет (или действие в Struts2) для загрузки файлов (изображений, документов и т. Д.).Но мне интересно, какой из подходов лучше хранить файлы в файловой системе и в базе данных, просто сохраняя путь к файлу ИЛИ для хранения файлов в базе данных, таких как BLOB.Я знаю, что когда я делаю запрос к базе данных, где есть большие двоичные объекты, медленнее, но если я сохраню в базе данных, мне будет проще сделать резервную копию данных и гарантировать их согласованностьЕсть предложения?

Ответы [ 3 ]

2 голосов
/ 25 июля 2011

Я думаю, что вы дали хорошее решение: хранить сами файлы в файловой системе и ссылки в БД. Хранение медиа-файлов в реляционной БД не дает вам серьезных преимуществ, но увеличивает объем БД и снижает производительность (как упомянуто @Amir Raminfar).

Вероятно, в наши дни хорошим подходом является хранение файлов в хранилище значений ключей или в так называемой базе данных NoSql, например. Касандра или Редис.

2 голосов
/ 25 июля 2011

Я никогда не использовал BLOB.Например, я просто храню загруженные пользователем фотографии в каталогах.Я не вижу особой причины для использования BLOB для хранения файлов.Вы говорите, что резервное копирование может быть проще - напротив, это может стать очень проблематичным, по крайней мере, в нашем случае, поскольку у нас много ГБ фотографий, но база данных должна быть достаточно маленькой, чтобы ее можно было часто ис PHPMyAdmin.

2 голосов
/ 25 июля 2011

Я занимаюсь хранением данных на диске из-за одного важного фактора: производительности. Остальное ваше предпочтение. Вот ссылка с лучшим сравнением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...