2014-11-21 20 views
1

我有這個查詢來獲取用戶的聯繫人列表。MySQL查詢需要一段時間,如果可能需要優化

SELECT contacts.contactID as id, contacts.conversationID, users.username, 
profile_picture, picture_path, full_name, sex, availabilityStatus 
FROM contacts 
JOIN users ON contacts.contactID = users.id 
WHERE contacts.ownerID = ?; 

關於如何優化此查詢的任何想法?

users表約有1M行。 contacts有大約10M行。

有用戶ID,使用ContactID指標,OWNERID

在誰的人有例如200個聯繫人,查詢需要幾秒鐘。

感謝

上contacts.contactID,users.id和contacts.ownerID列
+1

你有什麼試過?我們需要更多的信息來確定答案。聯繫人或用戶是否更小? contactID和id是否被索引? – 2014-11-21 20:00:00

+4

標準經驗法則:在決策環境中使用的任何字段(例如where,order by,join,case等)應該有一個索引。 – 2014-11-21 20:00:07

+0

由於代碼目前正在工作,這不屬於代碼審查嗎? – user2366842 2014-11-21 20:00:22

回答