У меня есть таблица 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.