что произойдет, если мы определим длину столбца больше требуемой - PullRequest
1 голос
/ 08 марта 2011

У меня был друг, который сказал мне, что никогда не нужно объявлять varchar как (255), если мы будем использовать только 20 символов. То же самое для INT.

Производительность мудрая, это правда? Можно ли добиться увеличения производительности за счет уменьшения размера моих столбцов? Что именно происходит, когда я объявляю столбец 255?

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

В большинстве случаев не будет никакого увеличения производительности с более короткими VARCHAR столбцами.

1 случаев, когда будет повышение производительности. Если у вас есть таблица MEMORY - a во временной таблице памяти, MySql выделит память для длины столбца.

Из документов :

В таблицах MEMORY используется фиксированная длина формат хранения строк. Переменная длина типы, такие как VARCHAR, хранятся с использованием фиксированная длина.

1 голос
/ 08 марта 2011

Использование TINYINT вместо INT, если вам нужен только размер TINYINT, сэкономит несколько байтов в строке.

A VARCHAR(255) не будет использовать больше, чем VARCHAR(20)если вы всегда используете только 20 символов (CHAR(255) с другой стороны может использовать больше, чем CHAR(20))

...