Какое место хранения, SQL Server или файловая система, позволит повысить производительность при сохранении изображений в формате tiff?

StackOverflow https://stackoverflow.com/questions/1234551

Вопрос

Нашей системе необходимо хранить изображения в формате tiff размером около 3 КБ.Мы получаем ~300 изображений одновременно и нам необходимо их быстро обработать.Как только будет получено около 100 000 изображений, они будут перенесены из нашей системы в другую архивную систему или удалены.

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

Какое место хранения, SQL Server или файловая система, позволит повысить производительность при сохранении изображений в формате tiff?

Есть ли какие-либо другие соображения или проблемы, о которых следует знать?

Это было полезно?

Решение

Хранение изображений в файловой системе даст вам лучшую производительность. Вам просто нужно поместить запись в соответствующую таблицу базы данных для вложений tiff-изображений - и использовать ее для получения пути к изображению в файловой системе.

Возможно, вы захотите еще больше повысить производительность, разместив изображения на веб-сервере - IIS (если уместно), и ваши клиентские приложения (опять же, если уместно) получат их непосредственно там вместо этого.

Другие советы

По моему опыту, SQL Server был неплох при хранении больших двоичных объектов в базе данных. Пока я следую рекомендациям, связанным с запросами, нормализацией и т. Д., Я считаю, что они хорошо работают.

По какой-то причине я лично не хочу хранить огромные файлы PDF, DOC и JPG в моей базе данных, но тогда это именно то, что делает Microsoft SharePoint, и делает это хорошо.

Я бы определенно подумал о том, чтобы добавить капли в мою базу данных.

Версия SQL Server 2008 имеет новую функцию под названием FILESTREAM.В части их документации также есть раздел, посвященный лучшие практики, в котором ребята из MS заявляют, что FILESTREAM должен вступить в игру, если BLOB-объекты обычно имеют размер более 1 МБ.

На этой странице MSDN указано:

Когда использовать FileStream, если следующие условия истины, вам следует рассмотреть возможность использования FileStream:- Размер сохраняемых объектов в среднем превышает 1 МБ.Для более мелких объектов хранение варбинных (максимальных) каждых людей в базе данных часто обеспечивает лучшую потоковую производительность.

Поэтому я думаю, что с помощью TIFF размером 3 КБ вы могли бы удобно хранить его внутри поля VARBINARY(MAX) в таблице SQL Server 2005.Поскольку он даже меньше размера страницы 8 КБ для SQL Server, он отлично подойдет!

Возможно, вы также захотите поместить свои BLOB-объекты в отдельную таблицу и оттуда ссылаться на свою «базовую» строку данных.Таким образом, если вам нужно запросить только базовые данные (ваши целые числа, varchars и т. д.), ваш запрос не будет перегружен BLOB-объектами, хранящимися вперемешку с другими вещами.

Марк

Система каталогов спутников в INPE / Бразилия хранит ссылку на изображения tiff, хранящиеся в файловой системе. Но изображения чуть больше - +/- 100 МБ. Если файл должен отображаться в браузере, код php считывает содержимое tiff с диска и рисует его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top