2011-05-11 2 views
1

У меня есть 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) 

индекс: list_id, contact_id

+0

Не могли бы вы показать нам результаты EXPLAIN? Без EXPLAIN вам почти невозможно помочь. –

ответ

1

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

select t1.[field], ... 
from t1 
left join t2 
on [conditions] 
where t2.[any pkey field] is null; 
+0

спасибо, я попробую. – Rafiu

Смежные вопросы