В чем основной вред SELECT *?
Ошибка в том, что задача СУБД вернуть соответствующий запросу результат и только те данные, которые необходимы программе.
Т.к. СУБД обычно находится на отдельном хосте, запрос со * будет создавать дополнительную нагрузку на сеть, т.к. будет передавать даже те поля, которые не нужны приложению, в свою очередь это вызови большее потребление ресурсов и самим приложением, которому необходимо будет обрабатывать результат запроса с "мусорными" данными. Использование * будет оправдано в случае, когда действительно необходимы все поля запроса или обработка запроса будет выполняться какой-нибудь ORM.
В том, чтобы не достать все поля, если их 10, а достать 2-3?