Ответ
Символ * (звёздочка)* в конструкции `SELECT ` является спецификатором, означающим "все столбцы"** таблицы или представления, указанного в FROM.
*Проблемы использования `SELECT ` в production:**
- Производительность: Сервер БД и сеть передают все данные, включая потенциально тяжелые (BLOB, TEXT) или ненужные для приложения столбцы.
- Стабильность: Структура таблицы может измениться (добавление/удаление/переименование столбцов). Явное перечисление столбцов делает запрос устойчивым к таким изменениям, если они не затрагивают выбранные поля.
- Читаемость: Непонятно, какие данные действительно используются в коде.
Рекомендация: Всегда явно перечисляйте необходимые столбцы.
-- Плохо
SELECT * FROM users;
-- Хорошо
SELECT id, username, email, created_at FROM users;
Исключением может быть ad-hoc анализ данных или случаи, когда логика приложения динамически работает со всеми столбцами (например, через рефлексию), но это редкие сценарии.