
На dev-сервере всё шустро. В проде — беда: запросы висят, база потеет. И вроде бы всё ок... пока не заглянешь в SQL:
SQL:
SELECT * FROM users WHERE status = 'active';
Проблемы “SELECT *”:
– Тянет все колонки, даже ненужные. А их может быть 30+.
– Увеличивает нагрузку на сеть и память приложения.
– Ломает кэш — ведь даже малейшие изменения в колонках меняют структуру результата.
– Убивает индекс-only scan: Postgres не может использовать покрывающий индекс, если явно не указаны поля.
Как надо:
Выбирай только нужные поля:
SQL:
SELECT id, name, email FROM users WHERE status = 'active';
Вывод:
SELECT * — это не “удобно”, это дорого. И ты за него уже платишь.
Сохрани, чтобы не словить боль в проде.