Вы должны EXPLAIN
запрос, чтобы знать, что он делает.
Однако ваш запрос, вероятно, будет работать лучше в PostgreSQL, если вы переписываете его на
SELECT product_id
FROM table1
WHERE EXISTS (SELECT 1
FROM table2
WHERE table2.id = table1.table2_ptr_id
AND table2.author IS NOT NULL);
Тогда PostgreSQL может использовать анти-объединение, которое, вероятно, будет работать намного лучше с огромным table2
.
Примечание: count
в вашем запросе не имеет никакого смысла для меня.