Что такое синтаксис для принудительного использования индекса для соединения в MySQL

Использование "FORCE/USE/IGNORE INDEX" при прямом выборе хорошо документировано, но из документации не видно, как это сделать для JOIN.

Как принудительно использовать определенный индекс для объединенной таблицы?

Ответы

Ответ 1

FORCE/USE/IGNORE идет после имени таблицы, с которой вы соединяетесь, и после псевдонима, если вы используете его.

SELECT
  t1.`id` AS `id_1`,
  t2.`id` AS `id_2`
FROM
  `table1` t1
LEFT OUTER JOIN
  `table2` t2
  FORCE INDEX FOR JOIN (`table1_id`)
  ON (t2.`table1_id` = t1.`id`)