クエリを
に変更しますWHERE NOT emails."$$meta.deleted" = FALSE
AND (emails."$$meta.created", emails.key) >
('2018-02-13T14:30:35.679075Z', '8c0a3151-bf17-490f-8124-d93f7482624f')
このインデックスを使用します:
CREATE INDEX ON emails ("$$meta.created", key)
WHERE NOT emails."$$meta.deleted";
説明:OR
パフォーマンスの問題です
。ペアの辞書式比較として書き直すことで、OR
を取り除くことができます。 、および単純なインデックススキャンにより、行が効率的に検出されます。 PostgreSQLは、ORDER BY
をサポートするインデックスを使用するように誘惑されなくなりました。 。