注意:这个问题与同步数据库无关架构/结构
问题
在我的 Web 应用程序中,我有一个PostgreSQL
数据库服务器(PGS
)和一个(单独的机器)业务逻辑服务器(BLS
),它们定期(每隔一两分钟)查询“SELECT ALL” PGS
。
问题是“SELECT ALL”查询每次很容易返回 50-200 MB。显然,如此频繁地通过 Web 传输如此多的数据在架构上并不是很好。
可能的解决方案
我想做的是运行一些diff
工具PGS
,并将新查询与前一个查询进行比较(所有这些都应该在 上完成PGS
)。比较完成后,我想从 获得转储PGS
并将其传输到BLS
。我期望基于差异的转储会比整个“SELECT ALL”查询小得多。
问题
是否有任何 PostgreSQL 数据差异工具可以比较两个表或两个转储之间的 PostgreSQL 数据?
注意:我更喜欢一些开源软件工具。
答案1
Postgres 可以为您完成所有这些工作,无需任何附加工具。服务器生成 WAL(预写日志)文件,其中包含对数据库所做的所有更改。我认为您真正需要的是流式复制。阅读:
如果你真的不想谈论同步数据库架构/结构,你可能会对这个答案中描述了解决方案。