Вопрос

Отказ от ответственности:Я очень новичок в SQL и базах данных в целом.


Мне нужно создать поле, в котором будет храниться максимум 32 символа текстовых данных.Делает "VARCHAR(32)" имею в виду , что у меня есть ровно 32 символы для моих данных?Нужно ли мне резервировать дополнительный символ для нулевого завершения?

Я провел простой тест, и кажется, что это буфер WYSIWYG.Однако я хотел получить конкретный ответ от людей, которые действительно знают, что они делают.


У меня есть опыт работы с C [++], поэтому этот вопрос вызывает тревогу в моей голове.

Это было полезно?

Решение

Да, в вашем распоряжении 32 персонажа.SQL не имеет отношения к строкам, заканчивающимся нулем, как это делают некоторые языки программирования.

Другие советы

Размер вашей спецификации VARCHAR - это максимальный размер ваших данных, то есть в данном случае 32 символа.Однако переменные- это динамическое поле, поэтому фактическое используемое физическое хранилище - это только размер ваших данных плюс один или два байта.

Если вы поместите 10-символьную строку в VARCHAR(32), объем физического хранилища составит 11 или 12 байт (точная формула будет указана в руководстве).

Однако, когда MySQL имеет дело с результирующими наборами (т.Е.после выбора) в памяти для этого поля будет выделено 32 байта для каждой записи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top