2009-08-13 9 views
13

直接選択を行う際に「FORCE/USE/IGNORE INDEX」を使用することは十分に文書化されていますが、 JOINのためにそれをしなさい。MySQLの結合にインデックスを強制的に使用する構文とは

結合テーブルに特定のインデックスを使用するにはどうすればよいですか?

+1

あなたはちょうど質問をし、1分後に2人目でそれに答えましたか? (私が知っているのは、6年後のことですが、私はちょうど興味があります) – karatedog

+0

@karatedog:ええ、私は年を費やして答えを見つけようとしました。ここで役に立つと思った。 – Drarok

答えて

29

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`) 
+1

何 'id_2' FROM' table1' t1の LEFT AS t2.'id'が 'table2' t2の GROUP BYとグループのために使用するインデックスを強制的に参加、id_1'' AS t1.'id'を選択 について? – Crusader

+1

ドキュメント(これらの日は無限に見つけるのが簡単です)は、利用可能なすべてのオプションを表示するのに非常に役立ちます。http://dev.mysql.com/doc/refman/5.6/en/index-hints.html – Drarok

関連する問題