2011-04-18 120 views
0

我有以下查詢找出計數總數。優化查詢


SELECT count(*) 
    FROM contacts_lists 
    JOIN plain_contacts 
    ON contacts_lists.contact_id = plain_contacts.contact_id 
    JOIN contacts 
    ON contacts.id = plain_contacts.contact_id 
    WHERE plain_contacts.has_email 
    AND NOT contacts.email_bad 
    AND NOT contacts.email_unsub 
    AND contacts_lists.list_id = 45897 

它需要150毫秒才能完成其任務。 是否有任何其他方式來運行上述查詢? 有什麼辦法可以縮短時間嗎?可能嗎?請告訴我.....................................

+0

你有索引外鍵字段(各種'contact_id')?你有'contacts_lists.list_id'字段的索引嗎? – 2011-04-18 08:53:14

回答

1

您是否創建了索引(add_index在遷移中)在您的contact_id列上?此外,它可能會更好使用

JOIN contacts ON contacts.id = contacts_lists.contact_id 
# instead of: JOIN contacts ON contacts.id = plain_contacts.contact_id