оптимизация запросов - PullRequest
1 голос
/ 11 мая 2011

У меня 50964218 записей в таблице.Я собираюсь получить данные из этой таблицы и вставить в ту же таблицу.Что требует больше времени для манипулирования.Как оптимизировать этот запрос.

Запрос:

INSERT INTO contacts_lists (contact_id, list_id, is_excluded, added_by_search)
SELECT contact_id, 68114 , TRUE, added_by_search
FROM contacts_lists cl1
WHERE list_id = 67579
AND is_excluded = TRUE
AND NOT EXISTS 
    (SELECT 1 FROM contacts_lists cl2 
     WHERE cl1.contact_id = cl2.contact_id AND cl2.list_id = 68114 )

index: list_id, contact_id

1 Ответ

1 голос
/ 11 мая 2011

вы, вероятно, получите лучшие результаты при левом соединении:

select t1.[field], ...
from t1
left join t2
on [conditions]
where t2.[any pkey field] is null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...