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

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

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

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

Ответ 1

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

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

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

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

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

select version() as myVersion

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

У этого вопроса уже есть ответ на Каков максимальный размер 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 или utf8mb4.

Используйте TEXT типы inorder для преодоления ограничения размера строки.

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

Ответ 6

В руководстве пользователя MySQL

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

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