Распределение памяти MySql - PullRequest
1 голос
/ 29 марта 2012

Кто-нибудь знает, как MySql выделяет память для «текста» и «блоба», если я вставляю данные меньшего размера, чем максимальный размер столбца?

Например, что происходит, когда я вставляю строку 50 КБ в столбец «текст»? Выделен ли весь столбец 65K?

1 Ответ

1 голос
/ 29 марта 2012

Тип данных TEXT имеет четыре различных размера * TINYTEXT * TEXT * MEDIUMTEXT * LONGTEXT

, различающихся максимальной длиной значений, которые они могут хранить.Все они являются типами переменной длины, поэтому отдельное значение требует хранения, равного длине (в символах) значения, плюс от 1 до 4 байтов для записи длины значения.Конечные пробелы не удаляются и не добавляются для хранения или извлечения.

Для столбцов переменной длины (VARCHAR, TEXT) MySQL выделяет только необходимое количество места для каждого сохраненного значения.

, т. Е. ДляТип данных текста Number of characters + 2 bytes и имеет максимальную длину до 65 535 символов

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