postgresql / postgis中的响应时间查询比较

时间:2018-06-19 09:23:41

标签: python postgresql postgis psycopg2 postgresql-9.5

我在两种不同的设置中测量时空查询的响应时间。

a)我有一个实例,我已经安装了带有postGIS扩展名的PostgreSQL

b)我有5个实例(1个主服务器,3个服务器,1个pgpool II客户端) - pgpool II复制。

我的查询是:

if let k = (k.base as? WeekDay), k == .mon {
   print("got it: \(k)")
}

在结果中我看到a)设置中的响应时间小于b)。

设置 - >响应时间:45,3456秒

b设置 - >响应时间:28,4658秒

在我进行实验之前,我认为在pgpool II复制(b设置)的情况下,响应时间将比在a中更大,原因是数据在节点之间被复制以获得可用性和容错性以及pgpool II会选择节点来发送查询,这会产生开销。对于单个节点,情况更简单,所以我认为响应时间会更好(设置)。

任何人都可以解释这种行为吗?或者知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

我相信这是预期的行为。根据{{​​3}},pgpool-II的并行查询功能允许将查询拆分到不同的服务器中:

  

加载余额

     

如果复制数据库(因为在任一复制模式下运行)   或主/从模式),在任何服务器上执行SELECT查询   返回相同的结果。 pgpool-II利用了复制功能   功能,以减少每个PostgreSQL服务器上的负载。确实如此   通过在可用服务器之间分配SELECT查询,改进   系统的整体吞吐量。在理想情况下,请阅读   性能可以与PostgreSQL的数量成比例地提高   服务器。负载均衡在有很多情况下最有效   用户同时执行许多只读查询。

     

并行查询

     

使用并行查询功能,可以在多个数据之间拆分数据   服务器,以便可以在所有服务器上执行查询   同时减少总体执行时间。并行查询   在搜索大规模数据时效果最佳。

以下是documentation功能的配置参数列表。