2010-12-29 5 views
7

Что лучше всего подходит для хранения больших фотографий/текстовых файлов на сервере sql. Устранение необходимости в масштабируемости, и мы просто работаем с 1 сервером.хранение больших файлов в sql-сервере

Я чувствую, что сохранение пути файла в sql в отличие от blob лучше. Это правда? Если бы нам пришлось масштабировать программное обеспечение, мы должны следовать этому методу.

ответ

9

Это зависит от размера файла.

Существует хорошая техническая документация Microsoft по этому вопросу, here.

Объекты размером менее 256 КБ лучше всего хранятся в базе данных, а объекты размером более 1 М лучше всего хранятся в файловой системе. Между 256K и 1M отношение чтения и записи и скорость перезаписывания или замены объекта являются важными факторами

Конечно, их выводы относятся к SQL Server (2005 и 2008 R2).

+0

удивительной бумаги, хороший найти! – gh9

+0

Хорошая бумага, хотя, даже если она специфична для сервера MS-SQL! Это зависит также от количества изображений и от характеристик приложения. Вероятно, он безопаснее BLOB, поскольку он менее подвержен ошибкам. –

1

В основном речь идет о правильном инструменте для работы. Много времени и усилий было поставлено на оптимизацию реляционной базы данных с целью хранения реляционных данных. Много времени и усилий было поставлено на оптимизацию файловых систем для хранения файлов.

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

1

Плохая идея. Если у вас нет особых причин хранить файлы в данных. Уже обсуждалось здесь: Storing Images in DB - Yea or Nay?

Если вы по-прежнему настаивают на том, прочитать лучшие практики, чтобы сделать это :) здесь Best Practices for uploading files to database

+0

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

+0

:) особенно, когда ваш заголовок вопроса говорит «хранение больших файлов в sql-сервере». По большому счету я имел в виду более одного мегабайта. Но, даже если он меньше, я не буду хранить в БД. Просто потому, что, как правильно сказал @David, это не правильный инструмент для работы. Файлы. Возможно, я захочу изменить размер, zip, split или, возможно, захочу через Amazon S3. Я не могу просто быстро сделать это, если они находятся в БД. – Nishant

Смежные вопросы