У меня был довольно сложный запрос, с которым я работал, и для его выполнения потребовалось 8 секунд. EXPLAIN показывал странный порядок таблиц, и мои индексы не все использовались даже с подсказкой FORCE INDEX. Я наткнулся на ключевое слово STRAIGHT_JOIN join и начал заменять некоторые из моих ключевых слов INNER JOIN. Я заметил значительное улучшение скорости. В конце концов я просто заменил все свои ключевые слова INNER JOIN на STRAIGHT_JOIN для этого запроса, и теперь он работает в 0,01 секунды.
Мой вопрос в том, когда вы используете STRAIGHT_JOIN и когда вы используете INNER JOIN? Есть ли причина не использовать STRAIGHT_JOIN, если вы пишете хорошие запросы?