次のクエリを最適化して速度を上げる方法はありますか? 実行には約6秒かかります。各テーブルには約 1000 レコードしか含まれていないため、巨大ではありません。
SELECT c. * , q.qualification_name, CONCAT( u.firstname, ' ', u.lastname ) AS name, v.venue_name, v.address_town
FROM p_courses c
LEFT JOIN p_qualifications q ON c.qualification_name = q.ref
LEFT JOIN p_users u ON c.instructor_number = u.instructor_number
LEFT JOIN p_venues v ON c.venue_token = v.token
WHERE (
c.status = 'completed'
OR c.status = 'confirmed'
)
上記のクエリは機能し、要求どおりにすべてのデータを取得します。複数の LEFT JOIN を追加するとすぐに時間がかかります。
ありがとう。
編集済み。
クエリの前に EXPLAIN を追加すると、これが返されます...
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE c ALL NULL NULL NULL NULL 1288 Using where
1 SIMPLE q ALL NULL NULL NULL NULL 21
1 SIMPLE u ALL NULL NULL NULL NULL 518
1 SIMPLE v ALL NULL NULL NULL NULL 669
申し訳ありませんが、それをどのように解釈するかはよくわかりません。