«пароль» должен быть char (40), если вы используете хэши SHA1.Это может иметь двоичное сопоставление, если вы уверены, что случаи хеширования всегда одинаковы.Это дает вам лучшую производительность.Если нет, используйте latin1, но не используйте utf8.
'email' ... используйте 255, вы не можете знать, как долго чей-то адрес электронной почты.
Для имени пользователяЯ бы просто использовал вашу максимальную длину имени пользователя.20 или 30, вероятно, было бы хорошо.
Если у вас есть индекс для символьного поля (особенно если это часть PK), выбирайте длину очень тщательно, потому что более длинные и длинные индексы могут сильно снизить производительность (и увеличитьиспользование памяти).
Кроме того, если вы используете поле UTF8 char в индексе, вы должны знать, что MySQL резервирует в 3 раза больше байтов, чем фактическая длина символа поля, готовясь к худшему случаю (UTF8 может хранить определенныесимволы по 3 байта).Это также может привести к нехватке памяти.