Влияет ли производительность на производительность, если хранимые данные varchar меньше установленного предела размера? - PullRequest
5 голосов
/ 06 декабря 2011

Если столбец с varchar(20000) и размером фактических сохраненных данных составляет около 4k-5k, имеет ли это какое-то значение для MYSQL? Как я читал из документации MYSQL, нет никакой разницы в использовании disk , когда фактические данные меньше заявленного размера.

Мой вопрос: будет ли какое-либо влияние в запросе SELECT на этот столбец? Могу ли я ускорить выполнение моих запросов, объявив varchar ближе к реальному размеру, который я буду хранить в нем?

1 Ответ

7 голосов
/ 06 декабря 2011

Нет. VARCHAR строки хранятся таким образом: некоторые байты используются для хранения эффективной длины строки (в вашем случае 2 байта, я думаю), а затем N байтов используются для хранения строки, где N равно длине вашей строка.

Так, например, если вы храните 'example', используются только 9 байтов.

В запросе SELECT нет влияния ни на скорость, ни на использование памяти.

...