В чем основной вред SELECT *?

Знаю, что плохо юзать SELECT *.
Но не знаю, в чем самый основной вред, если по факту сделаны все джойны, проставлены все WHERE, в чем основное отличие выбирать 2-3 поля в SELECT, или *?
  • Вопрос задан
  • 794 просмотра
Решения вопроса 1
Ошибка в том, что задача СУБД вернуть соответствующий запросу результат и только те данные, которые необходимы программе.
Т.к. СУБД обычно находится на отдельном хосте, запрос со * будет создавать дополнительную нагрузку на сеть, т.к. будет передавать даже те поля, которые не нужны приложению, в свою очередь это вызови большее потребление ресурсов и самим приложением, которому необходимо будет обрабатывать результат запроса с "мусорными" данными. Использование * будет оправдано в случае, когда действительно необходимы все поля запроса или обработка запроса будет выполняться какой-нибудь ORM.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
Поддержу ответ Дмитрий Шицков и добавлю, что при поддержке кода, если поля явно перечислены, то можно сходу понять что это за запрос и зачем он. А если со звездочкой, то все намного сложнее.
Ответ написан
Комментировать
mad_maximus
@mad_maximus
В том, чтобы не достать все поля, если их 10, а достать 2-3?
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
А никакого принципиального вреда нет... ну разве что приближение к индусскому коду с нечастой стрельбой себе в ноги...
К примеру абстрактная таблица сотрудников с их фио, табельными номерами, должностями и фотографиями... а каждое фото из-за усердия кадровички - 56мегапиксельный tiff)

А тут срочно надо домашний адрес сотрудника глянуть... сидючи в роуминге на хиленьком 3g с покилобайтной оплатой)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы