Больше, чем символ, но меньше, чем капля
Вопрос
Char хороши, потому что они имеют фиксированный размер и, таким образом, делают таблицу более быстрой.Однако они ограничены 255 символами.Я хочу хранить 500 символов, но большой двоичный объект имеет переменную длину, а это не то, что мне нужно.
Есть ли какой-нибудь способ иметь поле фиксированной длины в 500 символов в MySQL или мне придется использовать 2 символьных поля?
Решение
Я бы предложил использовать varchar(500).Несмотря на то, что varchar не имеет фиксированной длины, база данных должна зарезервировать правильный объем пространства.Вы не заметите никакой разницы в производительности при использовании varchar(500) и 2xchar(255).
Вы также, вероятно, вызовете дополнительные накладные расходы, объединив два символьных поля вместе.
Другие советы
Я бы предложил использовать varchar(500)
...если у вас MySQL 5.0.3 или выше.В предыдущих версиях длина VARCHAR была ограничена 255 символами.
Кроме того, CHAR и VARCHAR по-разному работают в отношении конечных пробелов.Обязательно прочитайте 10.4.1.Типы CHAR и VARCHAR. (это для MySQL 5.0).
Вы слишком беспокоитесь о деталях внутренней реализации.Не делайте предварительную оптимизацию.
Идти с VARCHAR(500)