我写了一个守护进程处理器,它将从一个数据库中获取记录,并将它们插入另一个数据库进行同步。它将基于布尔数据类型的每个记录指示标志获取记录。
我的桌子有数十万条记录。当我选择sync_done为false的记录时,会导致任何数据库性能问题吗?或者应该为该sync_done列(布尔数据类型)应用索引,以提高性能,因为它将对sync_done值为false的记录应用select操作?
例如说我有10000条记录。其中,9500已经同步(sync_done为true),只会选择其余的记录(sync_done为false)。
最终9500条记录不会在选择操作下。
请建议我如何进行。
对于这样的查询,
partial index将为您服务。
CREATE INDEX ON tbl (id) WHERE sync_done = FALSE
然而,对于这样的用例,可以优选其他同步方法。
>看看LISTEN
/ NOTIFY
。
>或使用trigger与dblink组合使用。
>或many available replication methods之一。