Путаница с типом данных varchar - PullRequest
0 голосов
/ 07 октября 2010

На моем сервере установлена ​​версия SQL для сообщества 5.0.91, теперь мне нужно хранить более или менее длинную строку длиной около 500 символов, я подумал о том, чтобы использовать текстовый тип данных, но потом кто-то сказал мне, что это замедляет производительностьЯ хотел узнать больше о varchar и его ограничении.

Раньше я думал, что varchar ограничен только 255 символами, но потом я читаю его где-то, что способен хранить больше, чем в более новой версии, т.е.> = 5.0.3, так как я использую 5.0.91 что вы думаете, я должен использовать?если я использую его как varchar (1000), он все еще действителен?

спасибо.

Ответы [ 5 ]

2 голосов
/ 07 октября 2010

Согласно документу MySQL:

TEXT отличается от VARCHAR в следующих отношениях:

  • Нет удаления конечного пространства для столбцов TEXT при сохранении или получении значений.До MySQL 5.0.3 это отличается от VARCHAR, для которого завершающие пробелы удаляются при сохранении значений.
  • Для индексов в столбцах TEXT необходимо указать длину префикса индекса.Для CHAR и VARCHAR длина префикса необязательна.
  • Столбцы TEXT не могут иметь значения DEFAULT.

Помимо этих различий, использование VARCHAR подобно использованию TEXT, поэтому вопрос размеране то, что заставляет вас выбирать между этими двумя, если вам действительно не нужно хранить не более 1000 символов.

2 голосов
/ 07 октября 2010

Документация здесь ,

  • Максимальный размер varchar составляет 65 535 в MySQL 5.0.3 и более поздних версиях, до 5.0.3 ограничение было 255

Обратите внимание, что эффективный размер меньше,

Эффективная максимальная длина VARCHAR в MySQL 5.0.3 и новее зависит от максимального размера строки (65 535 байт, который является общимсреди всех столбцов) и используемый набор символов.

Вы должны указать максимальный размер, например varchar(1000).Просто указать varchar недостаточно.

2 голосов
/ 07 октября 2010

С Типы CHAR и VARCHAR

Значения в столбцах VARCHAR являются строками переменной длины.Длина может быть указана как значение от 0 до 65 535.Максимальная эффективная длина VARCHAR зависит от максимального размера строки (65 535 байт, который распределяется между всеми столбцами) и используемого набора символов.

0 голосов
/ 07 октября 2010

Вы можете очень легко убедиться в себе.Доступ к документации Mysql открыт и гласит:

Значения в столбцах VARCHAR являются строками переменной длины.Длина может быть указана как значение от 0 до 255 до MySQL 5.0.3 и от 0 до 65 535 в 5.0.3 и более поздних версиях

, что касается проблем производительности, она нене имеет значения.Не тип данных, но данные отношения влияют на производительность.

0 голосов
/ 07 октября 2010

В MySQL VARCHAR принимает максимум 65535 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...