2012-01-13 35 views
1

我試圖運行這爲什麼會使服務器超時?

SELECT id, max(event_date) dt 
FROM worker 
LEFT JOIN events ON id = attendee 
WHERE worker.type='CON' 
GROUP BY id; 

但查詢時間太長。有沒有辦法讓這個更快?

workerevents有點大(10,000條記錄)表加入一對多。 (大多數工作人員有0個相關的事件,但有些人有10個左右。)但我不認爲這是如此之大,查詢會失敗。想法?

+1

運行展示和講解執行計劃。確保你有events.attendee的索引。假設id是主鍵,請確保您有worker.type的索引 – 2012-01-13 20:53:33

回答

0

沒有一個模式,這被迫作爲一個猜測。但是events表有id字段和attendee字段嗎?

在查詢幫助中是否更明確?

SELECT worker.id, max(events.event_date) dt 
FROM worker 
LEFT JOIN events ON worker.id = events.attendee 
WHERE worker.type='CON' 
GROUP BY worker.id; 

(我不得不承擔哪些表的每個字段同夥。)

相關問題