Другие люди дали хорошие общие ответы, но я бы добавил один важный момент: при использовании VARCHAR()
s (который я бы порекомендовал для таких полей), обязательно используйте длину, достаточно большую для любого разумного значение. Например, я обычно объявляю VARCHAR(100)
для имени, адреса электронной почты, доменного имени, названия города и т. Д. И VARCHAR(200)
для URL-адреса или уличного адреса.
Это больше, чем вам обычно нужно. На самом деле, 30 символов достаточно для почти всех этих значений (кроме полного имени, но хорошая база данных всегда должна хранить имя и фамилию отдельно), но это лучше, чем когда-либо менять типы данных в будущем. Указание длины, превышающей необходимую, для VARCHAR
очень мало, но учтите, что VARCHAR(MAX)
и TEXT
влекут за собой значительные накладные расходы, поэтому используйте их только при необходимости.
Вот пост, в котором указан случай, когда более длинная, чем необходимо VARCHAR
может снизить производительность: Важность длины varchar в таблице MySQL . Показывает, что все имеет стоимость, хотя в целом я бы все же предпочел длинные VARCHAR
s.