优化查询

时间:2011-04-18 08:41:49

标签: ruby-on-rails

我有以下查询,以找出总计数。


  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

完成任务需要150ms。 有没有其他方法来运行上述查询? 有没有办法减少时间?可能吗?请告诉我.....................................

1 个答案:

答案 0 :(得分: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