Вы должны использовать фактическую длину строки.Теперь, если вы знаете, что значение всегда будет точно 7 символов, тогда используйте CHAR(7)
вместо VARCHAR(7)
.
Причина, по которой вы видите полномочия 2, относится к столбцамкоторые имеют неопределенную длину - имя или описание, которое не может быть исправлено.В большинстве баз данных вам нужно указать максимальную длину для varchar()
.По историческим причинам полномочия 2 используются для таких вещей из-за бинарной природы базовых процессоров.
Хотя я почти всегда использую полномочия 2 в этих ситуациях, я могу думать, что нетреальные различия в производительности.Есть один.,,в некоторых базах данных фактическая длина varchar(255)
хранится с использованием 1 байта, тогда как varchar(256)
использует 2 байта.Это довольно незначительная разница - даже при умножении на миллионы строк.