Какой тип данных SQL сохранить Base64 закодировал файл?

nvarchar (макс.), varchar (макс.), или я должен действительно декодировать строку и поместить его в изображение или блоб или что-то?

Более длительная версия: (со всеми пикантными подробностями)

У меня есть веб-сервис.Net SOAP, который сохраняет записи в SQL 2 008 дБ. Сервис будет расширенным для принятия изображения, которое (что бы там ни было) также должно войти в DB временно.

Для хранения вещей простыми сервис берет изображение в качестве Основы 64 закодированных строки и должен будет отдать его как base64 закодированная строка позже (другой метод на том же сервисе).

Я первоначально просто собирался использовать nvarchar (макс.), и я уверен, что это работало бы. Но затем я думал, что base64 закодировал средства, это могло использовать varchar (макс.) и использовать меньше пространства памяти. Действительно ли это правильно? Или я должен стиснуть зубы и декодировать текст к двоичному файлу, сохранить его как блоб и затем повторно закодировать его на выходе снова?

Наконец - устройство хранения данных загрузки и производительность вряд ли вызовут проблемы, это - любимый проект и будет низкой загрузкой.

Править: В ответ на вопрос @howiecamp я описал, как я был URL, кодирующим изображение здесь: http://www.flowerchild.org.uk/archive/2010/06/13/base-64-encoding-an-image-to-pass-across-a-web.html

40
задан Andrew M 19 June 2014 в 21:00
поделиться

1 ответ

Ну, Base64 - это кодировка ASCII, на самом деле - поэтому определенно нет необходимости в NVARCHAR - и, поскольку это текст, я бы предложил VARCHAR (MAX )

Это чистый текст размером до 2 ГБ (должно быть достаточно), и это строковый тип, поэтому вы можете использовать с ним все строковые функции. NVARCHAR действительно использует вдвое больше памяти - всегда 2 байта на символ - и в этом случае совершенно не нужен.

74
ответ дан 27 November 2019 в 01:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: