У меня есть таблица contacts
, которая содержит такие поля, как postcode
, first name
, last name
, town
, country
, phone number
и т.д., все из которых определены как VARCHAR(255)
хотя ни одно из этих полей никогда не приблизится к 255 символам. (Если вам интересно, это так, потому что Ruby on Rails migrations сопоставляет строковые поля по VARCHAR(255)
по умолчанию, и я никогда не удосужился переопределить его).
Так как VARCHAR будет хранить только количество фактических символов поля (вместе с длиной поля), есть ли какое-либо преимущество (производительность или иное) на использование, скажем, VARCHAR(16)
над VARCHAR(255)
?
Кроме того, большинство из этих полей имеют индексы. Чем больше размер VARCHAR в поле влияет на размер или производительность индекса?
FYI Я использую MySQL 5.