@Gotoh

Есть ли разница в этих запросах SQL с join?

Есть два запроса, которые отличаются условием. Разница заключается в выборе таблицы в условии. Есть ли разница по какой таблице писать фильтр в данном случае? Может такая разница повлиять на производительность в каких-нибудь случаях?
Смотрел планы запросов, разницы не было, возможно сервер на этапе оптимизации сам выберет наиболее подходящий вариант в случае если например в одной таблице есть индекс, а в другой нет.

SELECT *
  FROM table1
  join table2 on table1.id = table2.table1_id
  where table1.id > 2  -- фильтруем по table1


SELECT *
  FROM table1
  join table2 on table1.id = table2.table1_id
  where table2.table1_id > 2 -- фильтруем по table2
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
Разницы в результате не будет.
Разницы в производительности не должно быть, если корректно отработал оптимизатор запросов.
На простых запросах, типа этого, он обычно отлично справляется, но чем сложнее запрос, тем больше смысла разжевывать ему все поподробнее, указывать правильные индексы, и все такое.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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