Одна из наших команд будет разрабатывать приложение для хранения записей в базе данных SQL2008, и каждая из этих записей будет иметь связанный файл PDF. В настоящее время около 340 ГБ файлов, причем большинство (70%) составляют около 100 тыс., Но некоторые из них имеют размер в несколько мегабайт. Данные в основном вставляются и читаются, но файлы иногда обновляются. Мы обсуждаем следующие варианты:
-
Храните файлы в виде BLOB в базе данных.
-
Храните файлы за пределами базы данных и сохраняйте пути в базе данных.
-
Используйте функцию фильтрации файлов SQL2008 для хранения файлов.
Мы прочитали лучшие практики Micrsoft в отношении данных потока, но поскольку файлы различаются по размеру, мы не знаем, какой путь выбрать. Мы склоняемся к варианту 3 (filestream), но имеем несколько вопросов:
-
Какую архитектуру вы бы выбрали, учитывая количество данных и размер файлов, отмеченных выше?
-
Доступ к данным будет осуществляться с использованием проверки подлинности SQL, а не проверки подлинности Windows, и веб-сервер, скорее всего, не сможет получить доступ к файлам с помощью Windows API. Будет ли это делать поток потока хуже, чем два других варианта?
-
Так как резервные копии SQL включают данные потока, это приведет к очень большому резервному копированию базы данных. Как другие обрабатывают базы данных с большим количеством данных для фильтрации?