VarBinary vs Image SQL Server для сохранения двоичных данных?

Мне нужно хранить двоичные файлы в базе данных SQL Server. Каков лучший тип данных из Varbinary и Image?

Ответ 1

Поскольку изображение устарело, вы должны использовать varbinary.

per Microsoft (спасибо за ссылку @Christopher)

текстовые, текстовые и графические типы данных будут удалены в будущем версии Microsoft SQL Server. Избегайте использования этих типов данных в новых разработки и планировать изменение приложений, которые в настоящее время используются их. Вместо этого используйте nvarchar (max), varchar (max) и varbinary (max).

Фиксированные и переменные типы данных для хранения больших не-Unicode и Юникод-символ и двоичные данные. Данные Unicode используют UNICODE UCS-2 набор символов.

Ответ 2

varbinary(max) - это способ (представлен в SQL Server 2005)

Ответ 3

Существует также довольно spiffy FileStream, представленный в SQL Server 2008.

Ответ 4

https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql

изображение

Бинарные данные переменной длины от 0 до 2 ^ 31-1 (2 147 483 647) байт. Тем не менее он поддерживает использование типа данных изображения, но должен знать:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql

varbinary [(n | max)]

Бинарные данные переменной длины. n может быть значением от 1 до 8000. max указывает, что максимальное хранилище размер составляет 2 ^ 31-1 байта. Размер хранилища - это фактическая длина введенные данные + 2 байта. Введенные данные могут быть 0 байтами в длина. Синоним ANSI SQL для varbinary изменяется двоично.

Итак, оба одинаково по размеру (2 ГБ). Но имейте в виду:

https://docs.microsoft.com/en-us/sql/database-engine/deprecated-database-engine-features-in-sql-server-2016#features-not-supported-in-a-future-version-of-sql-server

Хотя конец типа данных "image" все еще не определен, вы должны использовать эквивалент "будущего".

Но вы должны спросить себя: зачем хранить BLOBS в столбце?

https://docs.microsoft.com/en-us/sql/relational-databases/blob/compare-options-for-storing-blobs-sql-server