Pour une requête comme celle-ci, un index partiel couvrir uniquement les lignes non synchronisées serait mieux.
CREATE INDEX ON tbl (id) WHERE sync_done = FALSE;
Cependant, pour un cas d'utilisation comme celui-ci, d'autres méthodes de synchronisation peuvent être préférables pour commencer :
- Consultez
LISTEN
/NOTIFY
. - Ou utilisez un déclencheur
en combinaison avec dblink
ou un wrapper de données étrangères comme
postgres_fdw
(de préférence). - Ou l'une des nombreuses méthodes de réplication disponibles
.
Réplication en continu a été ajouté avec Postgres 9.0 et est devenu de plus en plus populaire.