Это больше привычка, чем все остальное. В varchar (32) или varchar (64) нет ничего волшебного, точно так же нет ничего волшебного в настройках по умолчанию, которые визуальные инструменты пытаются использовать вместо вас (например, varchar (50)). Многие из этих верхних границ были внедрены в головы людей, так как 640k было бы достаточно памяти для любого, и нам действительно нужно было беспокоиться о каждом байте.
Во многих случаях это сводится к общему пониманию. В предыдущей системе, в которой я работал, менеджеры по продуктам понятия не имели, каковы их требования. Они хотели сохранить имя, но не знали, из чего в действительности состоит домен имен, - но один из них заявил, что слышал о фамилии> 50 символов, поэтому он знал, что это должно быть больше 32 и более 50. Мы вернулись с 64, он согласился, что этого достаточно, и это то, что все еще существует сегодня AFAIK.
Хотя у нас была техническая причина для электронной почты (varchar (320)), которая в то время по стандарту определялась как 320 символов, потому что 64 символа для имени пользователя / localpart, 255 символов для имени домена и 1 символ для @ , Большинство других решений основывались на приоритете (например, все последующие имена следовали модели nvarchar (64), как указано выше) или логике (например, URL-адреса не обязательно должны быть nvarchar (max), но в зависимости от стандарта и возможностей браузера на В то время они были, я полагаю, либо varchar (2048), либо varchar (4096). В этом случае не потому, что это была степень 2, а потому, что чье-то программное обеспечение или стандарты создавали свои вещи для использования степени 2.