Мені потрібно зберігати двійкові файли в базі даних SQL Server. Який найкращий тип даних із Varbinary та Image?
Відповіді:
Оскільки зображення застаріле, слід використовувати varbinary.
на Microsoft (дякую за посилання @Christopher)
Типи даних ntext, text та image будуть видалені в майбутній версії Microsoft SQL Server. Уникайте використання цих типів даних у новій розробці та плануйте модифікувати програми, які їх зараз використовують. Замість цього використовуйте nvarchar (max), varchar (max) та varbinary (max).
Типи даних із фіксованою та змінною довжиною для зберігання великих символів та двійкових даних, що не належать до Юнікоду та Юнікоду. Дані Unicode використовують набір символів UNICODE UCS-2.
Існує також досить пишна FileStream
, представлена в SQL Server 2008.
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 (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 Гб). Але майте на увазі:
Хоча кінець типу даних "зображення" все ще не визначений, слід використовувати еквівалент доказів "майбутнього".
Але ви повинні запитати себе: навіщо зберігати BLOBS в колонці?