Имеет ли значение порядок таблиц в MySQL? - PullRequest
3 голосов
/ 23 ноября 2010

Или оптимизатор выяснит это для вас?

Например, это

SELECT * FROM t1 JOIN t2 USING (id)

Так же, как

SELECT * FROM t2 JOIN t1 USING (id)

Ответы [ 2 ]

8 голосов
/ 23 ноября 2010

Для внутренних объединений порядок не имеет значения.

Для внешних объединений порядок имеет значение.

Если вы хотите форсировать определенный порядок, вы можете использовать STRAIGHT_JOIN. * * 1008

1 голос
/ 23 ноября 2010

explain

В случае, если вы представляете, планировщик запросов должен всегда иметь возможность выяснить это. Но иногда все не так просто.

Если вы действительно хотите знать, как будет выполняться запрос, введите explain перед запросом:

explain SELECT * FROM t2 JOIN t1 USING (id);

Если вы получите один и тот же ответ на оба запроса, оптимизатор определит «лучший» способ объединения таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...