2016-06-08 4 views
0

Каков наилучший способ хранения длинной шестнадцатеричной строки с более чем 1500 символами?Хранение длинного шестнадцатеричного значения

Что такое лучший тип?

  1. Byte
  2. Текст
  3. LONGTEXT
  4. VarChar
+0

Можете ли вы угадать максимальный предел? – 1000111

+0

Почему вы не проверяете документацию MySQL вместо запроса вопроса SOF? Почему бы не использовать Google? Y? – Trix

ответ

2
  • BINARY закрепили обивка и максимальная длина 255 байт, так что не хорошо для вас.
  • VARCHAR и TEXT имеют как максимальную длину 65535 байт (64kb) и используют -более дополнительные байты для хранения длины данных.
  • LONGTEXT имеет максимальную длину 4294967295 байт (4 Гб) и использует -более дополнительные байты для хранения длины данных.

Если вы знаете, что вы всегда будете иметь меньше 64 кбайт данных в вашей HEX строки, я бы выбрал TEXT, в противном случае пойти с LONGTEXT.

+0

'BYTE' ->' BINARY'. –

+0

@RickJames: да, вы правы! Я исправил свой ответ, спасибо. Существует тип 'CHAR_BYTE', и я смутил его тем типом, который OP указал в вопросе. :) – Urban

+0

(я тоже был в замешательстве.) 'CHAR (123) BYTE' (без подчеркивания) совпадает с« BINARY (123) »и существует для обеспечения совместимости. –

0

Если вы упакуете его в байты (из шестнадцатеричного), то VARBINARY(...) или BLOB.

Если вы храните его как шестнадцатеричный, VARCHAR(...) CHARACTER SET ascii или TEXT CHARACTER SET ascii. Я упоминаю ascii, особенно если ваше значение по умолчанию - utf8; нет необходимости в utf8 для шестнадцатеричных цифр.

Смежные вопросы