2013-05-22 3 views
0

Мне интересно, как MySQL хранит тип varchar под капотом? Будет ли он храниться отдельно от таблицы или будет храниться в виде поля фиксированного размера (что-то вроде 2-байтового массива Unicode)?Внутреннее представление типа varchar в MySQL

+1

Этот вопрос не должен делать с программированием и не по теме. Вы можете найти объяснение типа данных в [документации] (http://dev.mysql.com/doc/refman/5.0/en/char.html) – Kermit

+0

Я не согласен. Понимание того, как ваша база данных хранит вещи внутри, важно при программировании, поскольку это будет определять вашу стратегию. – tadman

+0

@ tadman Опять же, не подходит для SO. Существует более подходящий сайт dba.se. – Kermit

ответ

2

VARCHAR - поле переменной длины, которое хранится в самой строке. Он хранится в любом наборе символов, который вы используете, обычно UTF-8, если вы идете с разумным значением по умолчанию.

Помните, что длина поля является максимальной, а не фиксированным. VARCHAR(255) может хранить до 255 символов, которые в MySQL преобразуются до 255 трехбайтовых последовательностей UTF-8 или всего 765 байтов.

TEXT и BLOB Поля типа хранятся в отдельной области таблицы.

Подробнее см. В data types documentation.

0

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

Пожалуйста, обратитесь по этой ссылке: http://dev.mysql.com/doc/refman/5.0/en///char.html, который расскажет вам разницу между полукокса и VARCHAR

+0

Нет необходимости подписывать свои сообщения, так как ваш аватар и имя уже автоматически привязаны ко всем из них. – tadman

Смежные вопросы