Пока не особо понимаю всех особенностей MySQL, так что стоит ли добавлять индекс к Имени пользователя (varchar) в таблице с пользователями? Соответственно, записи выбираются Where имя пользователя = 'Admin'
Если количество строк небольшое - смысла в индексах не будет. Зато будет оверхед на создание/хранение/изменение этих индексов. И JOIN по строковому полю - это очень нехороший признак даже при наличии индекса. MySQL очень плохо перевариевает JOIN'ы, особенно внешние.
у пользователя должен быть id primary, по нему и надо делать JOIN. И пока пользователей меньше 500 000 и логин работает быстро - не надо индексировать username
@Snewer, если Вы выбираете (идентифицируете) пользователя по имени, значит на это поле надо, как минимум, наложить ограничение уникальности. А это, как ни крути - индекс. И да, выбирать пользователя по имени - это нормально.
Слушай, на оф. сайте MySQL есть маленькие, компактные и очень по делу статьи, например "Optimization of WHERE clause" и т.д. Неужели тяжело потратить час и прочитать доки, чем тратить годы жизни, спотыкаясь о грабли?