[Мой] Размер переменной SQL и нулевое завершение
-
16-09-2019 - |
Вопрос
Отказ от ответственности:Я очень новичок в SQL и базах данных в целом.
Мне нужно создать поле, в котором будет храниться максимум 32 символа текстовых данных.Делает "VARCHAR(32)
" имею в виду , что у меня есть ровно 32 символы для моих данных?Нужно ли мне резервировать дополнительный символ для нулевого завершения?
Я провел простой тест, и кажется, что это буфер WYSIWYG.Однако я хотел получить конкретный ответ от людей, которые действительно знают, что они делают.
У меня есть опыт работы с C [++], поэтому этот вопрос вызывает тревогу в моей голове.
Решение
Да, в вашем распоряжении 32 персонажа.SQL не имеет отношения к строкам, заканчивающимся нулем, как это делают некоторые языки программирования.
Другие советы
Размер вашей спецификации VARCHAR - это максимальный размер ваших данных, то есть в данном случае 32 символа.Однако переменные- это динамическое поле, поэтому фактическое используемое физическое хранилище - это только размер ваших данных плюс один или два байта.
Если вы поместите 10-символьную строку в VARCHAR(32), объем физического хранилища составит 11 или 12 байт (точная формула будет указана в руководстве).
Однако, когда MySQL имеет дело с результирующими наборами (т.Е.после выбора) в памяти для этого поля будет выделено 32 байта для каждой записи.