Para uma consulta como essa, um índice parcial cobrir apenas linhas não sincronizadas serviria melhor.
CREATE INDEX ON tbl (id) WHERE sync_done = FALSE;
No entanto, para um caso de uso como este, outros métodos de sincronização podem ser preferíveis para começar:
- Dê uma olhada em
LISTEN
/NOTIFY
. - Ou use um gatilho
em combinação com dblink
ou um wrapper de dados estrangeiros como
postgres_fdw
(de preferência). - Ou um dos muitos métodos de replicação disponíveis
.
Replicação de streaming foi adicionado com o Postgres 9.0 e se tornou cada vez mais popular.