Modifica la query in
WHERE NOT emails."$$meta.deleted" = FALSE
AND (emails."$$meta.created", emails.key) >
('2018-02-13T14:30:35.679075Z', '8c0a3151-bf17-490f-8124-d93f7482624f')
e usa questo indice:
CREATE INDEX ON emails ("$$meta.created", key)
WHERE NOT emails."$$meta.deleted";
Spiegazione:OR
è un problema di prestazioni
. Riscrivendolo come confronto lessicografico di coppie, elimini il OR
e una semplice scansione dell'indice trova le righe in modo efficiente. PostgreSQL non è più tentato di utilizzare l'indice che supporta ORDER BY
.