この mysql クエリの最適化、またはこの mysql クエリを作成する他の方法を教えてください。実行できますが、時間がかかりすぎます。
SELECT DISTINCT
A.item1,
A.item2,
A.item3,
FROM tableAA AS A
INNER JOIN(tableBB AS B)
ON(A.item4 = B.item4)
INNER JOIN(tableCC AS C)
ON(A.item4 = C.item4)
INNER JOIN(tableDD AS D)
ON(A.item4 = D.item4)
WHERE (B.item5 = '$selected1' AND
B.item6 LIKE '%$selected2%' AND
C.item7='$selected3' ) OR
(A.item8 LIKE '%$selected2%' AND
D.item5 = '$selected1' AND
C.item7='$selected3')
このクエリを書く他の方法はありますか?
編集: tableAA & tableBB & tableCC には数十億のエントリが含まれています。テーブルを正しくインデックス付けしたと思います。
edit2: しかし、問題は Like % 状態ではないと思います。私はそれをオフにして、もう一度クエリを実行しました。それでも565秒ほどかかります。