我有兩個表:可以在「首選用戶」MySQL查詢中優化左連接嗎?
poll_response(poll_id,option_id,USER_ID) (約50萬行數據,500個獨特的民意調查,1000個獨特的選項,以及25000個獨特的用戶)
preferred_users (USER_ID) (約800行)
我想,以確定誰選擇的每個選項是用戶的百分比「首選用戶」(即那些聲譽很高的人)。其他用戶可以迴應投票;爲了確定響應來自首選用戶,加入對preferred_users表是必需的。
下面是我得到了什麼:
SELECT option_id, count(*) AS all_votes, count(preferred_users.user_id) AS preferred_votes
FROM response
LEFT JOIN preferred_users ON response.user_id = preferred_users.user_id
GROUP BY option_id
查詢吐出表是這樣的:
| option_id | all_votes | preferred_votes
| 1 | 500 | 150
| 2 | 550 | 250
| 3 | 525 | 300
然後我可以做數學確定的百分比。
問題是查詢經常超時 - 這意味着完成需要一分多鐘。
有沒有什麼辦法擺脫左連接或以其他方式優化查詢?
你對這些表有什麼索引? – 2012-02-27 20:00:50
BTREE索引每個列在poll_response – jawns317 2012-02-27 20:13:45