@sokoll___001

Насколько сильная разница между запросами * и `id` в MySQL?

"SELECT * FROM users WHERE token = ? AND banned < 1"

"SELECT id, name, balance FROM users WHERE token = ? AND banned < 1"

будет ли отличие в скорости ответа и нагрузке?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Лучше звездочку не использовать по двум причинам.

Первое - это объем сетевого трафика. Если в таблицу будет добавлено 4 поле например типа BLOB и туда
будут вставлять картинки - то при каждом select * ... картинка будет транслироваться по сети даже если
она вам не нужна.

И второе - просто неожиданно поведение софта, который ожидает поля именно в этом порядке
id, name, balance
если кто-то захочет поменять тип данных name например - то он сделает drop column name, а потом
создаст новое поле alter table add column .... то в таблице они лягут в заголовок уже в новом порядке
id, balance, name
Какие будут последствия - чорт его знает но ничего хорошего для автоматизированных систем ждать
не стоит.

Вобщем всегда указывайте явно поля.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы