客户端的PostgreSQL查询比服务器的查询慢得多

客户端的PostgreSQL查询比服务器的查询慢得多,postgresql,query-performance,Postgresql,Query Performance,我在一家小公司工作(约15名员工),公司服务器中存储有一个postgreSQL数据库 我通常从自己的计算机上运行查询(我将在下文中称之为“客户机”),获取结果通常不会显著增加查询持续时间 然而,今天,我运行了一个来自客户端的请求,运行了2小时10分钟。但我很惊讶地在屏幕上看到以下内容: Query returned successfully in 10:35 minutes. 我认为这意味着服务器上的计算持续了10分钟,其余时间(2小时…)仅用于从服务器向客户端获取结果 然后,我尝试从客户端运

我在一家小公司工作(约15名员工),公司服务器中存储有一个postgreSQL数据库

我通常从自己的计算机上运行查询(我将在下文中称之为“客户机”),获取结果通常不会显著增加查询持续时间

然而,今天,我运行了一个来自客户端的请求,运行了2小时10分钟。但我很惊讶地在屏幕上看到以下内容:

Query returned successfully in 10:35 minutes.
我认为这意味着服务器上的计算持续了10分钟,其余时间(2小时…)仅用于从服务器向客户端获取结果

然后,我尝试从客户端运行另一个查询(即,执行函数
pgr\u createtopoly
,以查找图形的顶点)。我直到最后才运行它,但它似乎非常慢:在20分钟内只创建了6000个顶点,在我的图中大约有30万个顶点,这意味着查询需要大约15个小时才能完成

我中止了这个查询并再次运行它,但这次是从服务器上运行的。12点42分就完成了

从服务器上运行12分钟,从客户端运行12小时。。。如何解释这种性能差异


我想再次提到一个事实,通常,对于短查询,当我使用EXPLAIN时,我从未发现获取结果代表大部分查询持续时间,因为我们有一个快速的内部网络。

事实上,问题与此问题相同:


通过在
postgresql.conf
配置文件中设置
SSL=off
关闭SSL压缩,然后重新启动postgresql服务器,解决了这个问题。

你检查过了吗?@Johan在
postgresql.conf
文件中,我有
#SSL=off
。哦,我现在明白了。
ssl=off
之前的散列字符
#
表示这是一个注释行,即不考虑它。我删除了散列,现在参数
ssl
实际上设置为
off
。我再次从客户端运行查询,它确实快得多。谢谢你的帮助。