@Korolenkz

SQL: какая выборка работает быстрее -- с указанием * или именами всех полей таблицы?

Какой код работает быстрее, если у нас есть таблица с полями `id`, `name`, `city`?
SELECT * FROM `table`
или
SELECT `id`, `name`, `city` FROM `table`
?
  • Вопрос задан
  • 569 просмотров
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
В приведенном примере особой разницы нет. Разница ощущается много и густо когда вы начинаете использовать JOIN. У вас будет горсть id и хрен знает какое откуда. Или одно и тоже поле получите несколько раз.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
knetesin
@knetesin
Шпион
Всё дело в передаче данных после обработки запроса,
в случае с * - все поля попадут в выборку;
если явно перечислить поля, тем самым ограничив поля которые вернуться с запроса - объем данных для передачи может быть меньше, следовательно обработка будет быстрее

пересчеление всех нужных полей считается хорошей практикой + экономит объем переданных данных ;)
Ответ написан
Комментировать
AloneCoder
@AloneCoder
[object Object]
С точки зрения скорости - работает одинаково, но второй вариант предпочтительней
Ответ написан
t-alexashka
@t-alexashka
Сразу пишу legacy код
Если в таблице 10 полей и они все нужны при запросе - пишите *
А если нужно только 5 полей например, - тогда лучше их перечислить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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