@sokoll___001

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

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

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

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

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

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

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

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

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