Это хорошая практика. Хранить загруженный файл в БД или хранить его в файловой системе. - PullRequest
5 голосов
/ 11 мая 2010

У меня в приложении ASP.NET есть File Uploader. Используя C #, мы можем загружать любые типы изображений, документов, PDF и т. Д.

Я храню его в файловой системе и имею только имя файла в БД. Я сомневаюсь, что мы можем хранить весь файл, изображения в БД. Скажите мне, что является хорошей практикой и почему мы должны ее использовать.

Хранилище файловой системы или хранилище БД SQL.

Ответы [ 4 ]

4 голосов
/ 11 мая 2010

Почти тот же вопрос был задан здесь. Проверьте ответ:

Работа с изображениями в WCF

Это в основном зависит от размера ваших файлов. Вот хорошая статья.

К BLOB или не К BLOB

Для хранения файлов размером менее 256 КБ в БД в столбце VarBinary более эффективно.

Мы храним наши файлы на MS SQL Server в столбце VarBinary с ограничением 256 КБ, и он работает нормально.

Надеюсь, это поможет. Удачи!

2 голосов
/ 11 мая 2010

Это аргументированный субъективный, но я бы сказал, что лучше хранить файлы в файловой системе. Это то, для чего предназначены файловые системы, и в SQL Server 2008 появился новый тип файла , который позволяет делать это автоматически и даже использовать транзакции.

0 голосов
/ 11 мая 2010

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

0 голосов
/ 11 мая 2010

Зависит от:

  1. Насколько большой файл, хотя большие двоичные объекты можно эффективно обрабатывать в RDBM
  2. Тяжело читать или писать?
  3. Сколько одновременных запросов для этого ресурса
  4. Используете ли вы какие-либо другие механизмы кэширования
  5. Имеется ли у вас SAN или кластерная файловая система

Короче говоря, без каких-либо подробностей, лучшую практику трудно дать. Все зависит от ваших ограничений и требований, как любая задача.

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