Для SQL Server, у Microsoft Research есть действительно хорошая статья под названием To Blob or Not To Blob.
Их вывод после большого количества тестов производительности и анализа заключается в следующем:
если ваши фотографии или документ, как правило, ниже 256К в размерах, сохраняя их в базе данных VARBINARY
столбец является более эффективным
, если ваши изображения или документы, как правило, имеют размер более 1 МБ, более эффективное хранение их в файловой системе (и с атрибутом SQL Server 2008 FILESTREAM
, они все еще находятся под транзакционным управлением и частью базы данных)
между этими двумя, это немного жеребьевкой в зависимости от вашего использования
Если вы решили поместить свои фотографии в таблицу SQL Server, я настоятельно рекомендую использовать отдельную таблицу для сохранение этих изображений - не храните фотографию сотрудника в таблице сотрудников - храните их в отдельной таблице. Таким образом, таблица Employee может оставаться скудной, средней и очень эффективной, предполагая, что вам не всегда нужно выбирать фото сотрудника, как часть ваших запросов.
Для файловых групп ознакомьтесь с Files and Filegroup Architecture для вступления. В принципе, вы либо создадите свою базу данных с отдельной файловой группой для больших структур данных с самого начала, либо добавите дополнительную файловую группу позже. Назовем это LARGE_DATA
.
Теперь, когда у вас есть новая таблица для создания которой необходимо хранить VARCHAR(MAX)
или VARBINARY(MAX)
столбцов, вы можете указать эту группу файлов для больших объемов данных:
CREATE TABLE dbo.YourTable
(....... define the fields here ......)
ON Data -- the basic "Data" filegroup for the regular data
TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data
Отъезд интро MSDN по файловым группам, и поиграйте с ним!
Почему вы хотите переместить их в базу данных? Это потребует большего использования процессора. – nunespascal
@nunespascal Переносимость. Производительность не является проблемой. – 2013-03-20 06:52:06