有什麼方法可以針對速度優化以下查詢:大約需要6秒鐘才能執行。每張表只包含大約1000條記錄,所以它不是很大。MySQL查詢速度加入
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。
謝謝。
EDITED。
添加解釋該查詢返回該前面...
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
很抱歉,但我不太知道如何解釋這一點。
對不起,我知道格式是可怕的。 – Rob 2012-04-26 11:03:25
你應該在你的問題中修改它,修正那裏的格式,但最重要的是,檢查它並看看你能從中找出什麼。正如我所說的,你需要在你加入的領域的索引/ /執行一個在哪裏,所以添加索引,並看看是否有幫助。不要只轉儲一個解釋,試試我建議:) – Nanne 2012-04-26 11:05:30
格式化固定。所以看起來我需要在這些字段上添加索引。 – Rob 2012-04-26 11:13:42