В какой момент MySQL начинает обрабатывать столбцы VARCHAR как столбцы TEXT? - PullRequest
7 голосов
/ 01 июля 2011

Я знаю, что начиная с MySQL 5, VARCHAR может иметь длину до 65000. VARCHAR хранится в строке, что означает более быстрый поиск, в отличие от TEXT, который хранится вне таблицы. Тем не менее, в документации говорится, что MySQL будет обрабатывать LONG VARCHAR точно TEXT.

Согласно этому источнику :

Из предполагаемого хранилища BLOB, TEXT as ну как долго VARCHAR обрабатываются одинаково путь по Innodb. Вот почему Innodb Руководство называет это «длинные столбцы», а чем BLOB.

Когда MySQL начинает обрабатывать VARCHAR как TEXT? При каком количестве символов MySQL делает это различие, и VARCHAR перестает храниться встроенным?

1 Ответ

5 голосов
/ 07 июля 2011

Краткий ответ: «длинный» VARCHAR является обычным VARCHAR и будет встроенным.

MySQL волшебным образом не начнет трактовать прямой VARCHAR как текстовый тип. Это всегда будет храниться в строке. В 5.0.3 верхний предел для VARCHAR был снижен до 65 535 байт. Они также занимают 2 байта заголовка, если более 255 символов. Это ограничение по-прежнему применяется к максимальному размеру строки 65 535 байт. LONG VARCHAR - это на самом деле другой тип, который выполняет обратное сравнение со MEDIUMTEXT.

См .: http://dev.mysql.com/doc/refman/5.0/en/char.html и http://dev.mysql.com/doc/refman/5.0/en/blob.html

...