В SQL, насколько порядок JOIN по сравнению с WHERE влияет на производительность запроса?
a) SELECT […] FROM A JOIN (* 1006) * ВЫБРАТЬ […] ИЗ B ГДЕ СОСТОЯНИЕ ) ВКЛ […]
b) ВЫБРАТЬ […] ИЗ A ПРИСОЕДИНИТЬСЯ ( ВЫБРАТЬ […] ИЗ B ) ВКЛ […] ГДЕ СОСТОЯНИЕ
Мое внутреннее чувство подсказывает мне, что вариант а) должен быть более производительным: если сначала мы выполняем объединение, а затем запускаем метод where, который кажется менее производительным, чем первый запуск метода where на одной таблице и из результатов, выполняющих объединение. Но я не уверен, так как это зависит от внутренней оптимизации самой библиотеки SQL.
Было бы неплохо узнать, одинаково ли поведение для MySQL и PostgreSQL, а также если это зависит от любых других декораторов как group by
или order by
.