Является ли VARCHAR(20000) действительным в MySQL?



Мне нужно некоторое уточнение максимальной длины поля varchar в MySQL.



Я всегда думал, что максимальная длина 255 (255 что? Персонажи, которые я предполагал, но это может быть источником моей путаницы). Взглянув на таблицы базы данных, созданной внешней компанией, с которой мы работаем, я вижу настройку поля как varchar(20000), содержащую куски xml длиной более 255 символов. Почему это работает? Является ли 20000 допустимым значением?



немного погуглил показал, что в mysql varchar имеет предел 65 535 байт, и я вижу, что varchar(65535) используется, так как предел 255 относится к этому?

988   6  

6 ответов:

обратите внимание на версии MySQL.

http://dev.mysql.com/doc/refman/5.0/en/char.html

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

какая версия MySQL у меня есть?

выполните следующий запрос...

select version() as myVersion

он действителен с версии 5.0.3, когда они изменили максимальную длину с 255 до 65535.

CHAR всегда было 255 макс.

http://dev.mysql.com/doc/refman/5.0/en/char.html

Если вы ожидаете слишком большие входы, его лучше использовать текст, MEDIUMTEXT или LONGTEXT вместо этого.

хотя индекс не может быть построен на varchar(2000)

этот вопрос уже есть ответ в Что такое максимальный размер MySQL VARCHAR?

имейте в виду, что MySQL имеет ограничение максимального размера строки

внутреннее представление таблицы MySQL имеет максимальный предел размера строки 65 535 байт, не считая типов BLOB и TEXT. Столбцы BLOB и TEXT вносят только от 9 до 12 байт в ограничение размера строки, поскольку их содержимое хранится отдельно от остальной части строки. Читать дальше о ограничения на количество столбцов таблицы и размер строки.

максимальный размер, который может занимать один столбец, отличается до и после MySQL 5.0.3

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

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

использовать TEXT типы, чтобы преодолеть ограничение размера строки.

четыре типа текста: TINYTEXT, TEXT, MEDIUMTEXT и LONGTEXT. Они соответствуют четырем типам больших двоичных объектов и имеют одинаковую максимальную длину и хранение требования.

в руководстве MySQL указано

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

Так это зависит от версии, которую вы используете.

Comments

    Ничего не найдено.