Статья от 11 годане думаю что в структуре хранения / индексирования этого типа данных что-либо кардинально поменялось, так как это базовый тип, функционально никак не изменившийся за эти годы.
И собственно вопрос индексы то надо создавать или нет?В статье кстати есть пункт о плохой оптимизации в плане скорости выборки по полю с небольшой селективностью, и накладных расходах на преобразование. Как выше посоветовал FanatPHP проще за 2 минуты проверить как влияет индекс на скорость, используя explain. Ну и от запросов конечно зависит.
// выводит ошибкучто вполне понятно. Либо используйте чейнинг, как описал Сергей delphinpro в ответе, либо в методе сразу можно вызвать другой метод класса через $this->someMethod().
А вот этого мы утверждать не можем, пока не увидим механизм/код создания вот этогоВообще никак не связано. ТС вообще ничего не говорил про мд5, про мд5 завел разговор edward_freedom, и при этом мысль его была где-то рядом с правильной, но реализация на троечку с минусом, хотя скорее всего навеяна была именно созданием хешей пароля в древних реализациях авторизаций на пхп. В данном случае строка для генерации хеша как раз должна сдержать минимальное количество информации из пользовательских данных (а желательно не иметь их в составе вовсе).