Мне нужно хранить двоичные файлы в базе данных SQL Server. Какой тип данных лучше из Varbinary и Image?
Ответы:
Поскольку изображение устарело, вы должны использовать varbinary.
за Microsoft (спасибо за ссылку @Christopher)
Типы данных ntext, text и image будут удалены в будущей версии Microsoft SQL Server. Избегайте использования этих типов данных в новых разработках и запланируйте изменение приложений, которые в настоящее время их используют. Вместо этого используйте nvarchar (max), varchar (max) и varbinary (max).
Типы данных фиксированной и переменной длины для хранения больших символьных и двоичных данных, отличных от Unicode и Unicode. Данные Unicode используют набор символов UNICODE UCS-2.
Есть также довольно элегантный FileStream
, представленный в SQL Server 2008.
FileStream
всего лишь хранилища. Filestream реализуется путем использования varbinary(max)
и внесения изменений в ваш экземпляр sql-сервера.
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
образ
Двоичные данные переменной длины от 0 до 2 ^ 31-1 (2147483647) байтов. Тем не менее поддерживается использование типа данных изображения, но имейте в виду:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql
varbinary [(n | макс)]
Двоичные данные переменной длины. n может принимать значения от 1 до 8000. max указывает, что максимальный размер хранилища составляет 2 ^ 31-1 байта. Размер хранилища - это фактическая длина введенных данных + 2 байта. Вводимые данные могут иметь длину 0 байт. Синоним ANSI SQL для varbinary является двоичным.
Так что оба они одинакового размера (2 ГБ). Но имейте в виду:
Хотя конец типа данных «изображение» все еще не определен, следует использовать эквивалент «будущего».
Но вы должны спросить себя: зачем хранить большие двоичные объекты в столбце?