У меня есть 3 таблицы: Table1 (с 1020690 записями), Table2 (с 289425 записями), Table 3 (с 83692 записями).
SELECT * FROM Table1 T1 /* OK fine select * is bad when not all columns are needed, this is just an example*/
LEFT JOIN Table2 T2 ON T1.id=T2.id
LEFT JOIN Table3 T3 ON T1.id=T3.id
и такой запрос
SELECT * FROM Table1 T1
LEFT JOIN Table3 T3 ON T1.id=T3.id
LEFT JOIN Table2 T2 ON T1.id=T2.id
План запроса показывает, что он использует 2 объединения слиянием для обоих объединений. Для первого запроса первое слияние происходит с T1 и T2, а затем с T3. Для второго запроса первое слияние происходит с T1 и T3, а затем с T2.
Оба эти запроса занимают примерно одинаковое время (приблизительно 40 секунд), а иногда Query1 занимает пару секунд дольше.
Итак, мой вопрос, имеет ли значение порядок соединения?