#postgresql
#postgresql
Вопрос:
У меня есть 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
Комментарии:
1. Не могли бы вы показать нам результаты из EXPLAIN? Без ОБЪЯСНЕНИЯ помочь вам практически невозможно.
Ответ №1:
вероятно, вы получите лучшие результаты при объединении по левому краю:
select t1.[field], ...
from t1
left join t2
on [conditions]
where t2.[any pkey field] is null;