Задание порядка выполнения запроса MySQL с JOIN операторами

Есть ли способ явно указать порядок выполнения JOIN операторов в запросе MySQL? Т.е. нужно проигнорировать execution plan, который выбирает оптимизатор и выполнить запрос с желаемым порядком JOIN запросов.


Ответы (1 шт):

Автор решения: Егор Банин

Да. В MySQL существуют подсказки оптимизатору, в том числе и порядок соединения https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html#optimizer-hints-join-order.

В большинстве случаев следует избегать таких подсказок, так как работа оптимизатора может меняться от версии к версии. Разработчикам рекомендуют писать что они хотят получить, а не как. Однако, подсказки могут выручить в каких-то исключительных ситуациях.

→ Ссылка