Сохраняйте документы как BLOB в SQL или в файловой системе - PullRequest
2 голосов
/ 10 марта 2011

Для веб-приложения (.net) мне нужно разрешить пользователям хранить много документов (pdf, .docx и т. Д.).Моими первыми мыслями было сохранить все документы как BLOB в базе данных SQL (Express).

Но как будет расти моя база данных?Лучше ли сохранить все документы в файловой системе?

Лично я все еще думаю, что мне лучше сохранять документы в базе данных из-за производительности.Но я не уверен и не заинтересован в том, что вы, ребята, думаете.

Правка - Мой вывод: Если размер файла меньше 1 МБ и / или файл редко редактируется, вам следует сохранитьфайл на сервере SQL, из-за производительности.Если файл будет много отредактирован и / или будет больше 1 МБ, вы должны сохранить свой файл в файловой системе.Большое спасибо a_horse_with_no_name;)

Ответы [ 4 ]

3 голосов
/ 10 марта 2011

В зависимости от размера больших двоичных объектов размер BLOB-объектов в базе данных выше или ниже, чем у собственной файловой системы.

Эта статья от Microsoft может быть интересной для вас:

http://research.microsoft.com/apps/pubs/default.aspx?id=64525

0 голосов
/ 10 марта 2011

Кажется, что ключ здесь нас many documents (pdf, .docx etc.). Многие могут предположить, что ваши данные будут очень быстро увеличиваться в размерах. Вы можете использовать оба подхода технически. Следует учитывать, что если вы используете базу данных для хранения данных, а ваша база данных - SQL Express, у вас есть ограничения на размер базы данных. Поэтому вам, вероятно, следует использовать Sql Server Professional или Enterprise, чтобы избежать этого. Также, если вы должны использовать базу данных, используйте отдельную базу данных, чем ваша основная база данных. Моя рекомендация :
1. использовать файловую систему
2. хранить только ссылки в базе данных на ваши файлы 3. регулярно делайте резервные копии файлов в файловой системе и в вашей базе данных 4. Защитите каталог, в котором вы храните файлы, чтобы предотвратить несанкционированное чтение или загрузку файлов

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

0 голосов
/ 10 марта 2011

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

0 голосов
/ 10 марта 2011

Я делал это и раньше, и особенно с SQL Express в качестве базы данных, вы можете подумать о сохранении их в файловой системе. В SQL Express максимальный размер базы данных составляет 4 ГБ, что может быть проблемой в зависимости от того, сколько документов вы говорите и насколько они велики.

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

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