У меня есть запрос PostgreSql следующим образом:
SELECT DISTINCT ON (reference) reference, reference_url
FROM vehicles v
WHERE NOT EXISTS
(select reference
from daily_run_vehicle rv
WHERE ((
handled = False
AND retries >= 5 )
OR rv.timestamp::timestamp::date = now()::date)
AND v.reference=reference);
Где в таблице vehicles
около 400 000 записей, а в таблице daily_run_vehicle
около 50 миллионов записей.
Таким образом, мне нужны все транспортные средства, для которых это транспортное средство не добавлено в daily_run_vehicle
сегодня или где обработанный столбец равен False
И повторы column is >= 5
.
Но проблема в том, что выполнение запроса занимает много времени.
Есть ли способ написать его лучше, чтобы он выполнялся быстрее?