user712958
user712958

Reputation: 1

Optimize the query

I have following query for find out the total no of counts.


  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

It takes 150ms to complete its task. Is there any another way to run the above query? Is there any way to reduce the time? is it possible? please tell me.....................................

Upvotes: 0

Views: 89

Answers (1)

Marcel Jackwerth
Marcel Jackwerth

Reputation: 54782

Did you create indices (add_index in migrations) on your contact_id columns? Also it might be better to use

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

Upvotes: 1

Related Questions