Оптимизировать запрос - PullRequest
0 голосов
/ 18 апреля 2011

У меня следующий запрос, чтобы узнать общее количество отсчетов.


  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 мс, чтобы выполнить свою задачу.Есть ли другой способ выполнить вышеуказанный запрос?Есть ли способ сократить время?Является ли это возможным?скажите пожалуйста .....................................

1 Ответ

1 голос
/ 18 апреля 2011

Вы создавали индексы (add_index в миграциях) для ваших contact_id столбцов? Также может быть лучше использовать

JOIN contacts ON contacts.id = contacts_lists.contact_id
# instead of: JOIN contacts ON contacts.id = plain_contacts.contact_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...