Я бы усердно работал, чтобы НЕ использовать CHAR () или VARCHAR () в качестве PK, а вместо этого использовать int с auto_increment. Это позволяет вам использовать этот user_id в дочерних таблицах, если это необходимо, и запросы на ПК должны выполняться быстрее. Если вам нужно использовать либо CHAR (), либо VARCHAR (), я бы использовал CHAR (), так как это фиксированная ширина.
Я не уверен на 100%, как MySQL работает с VARCHAR (), но большинству движков баз данных приходится делать что-то магическое, чтобы помочь движку узнать, где заканчиваются поля VARCHAR () и где начинается следующее поле, CHAR () делает это прямо вперед и мешает двигателю думать слишком много.