【问题标题】:PostgreSQL query is much slower from client than from server [duplicate]来自客户端的 PostgreSQL 查询比来自服务器的查询慢得多 [重复]
【发布时间】:2018-04-24 14:21:52
【问题描述】:

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

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

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

Query returned successfully in 10:35 minutes.

我认为这意味着服务器本身的计算持续了 10 分钟,而其余时间(2 小时...)仅用于从服务器获取结果到客户端。

然后,我尝试从客户端运行另一个查询(即执行函数pgr_CreateTopology 来查找图的顶点)。我直到最后才运行它,但它似乎很慢:在 20 分钟内只创建了 6000 个顶点,而我的图中大约有 300'000 个顶点,这意味着查询大约需要 15 小时才能完成.

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

从服务器运行十几分钟,从客户端运行十几个小时......如何解释这样的性能差异?

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

【问题讨论】:

  • @Johan 在postgresql.conf 文件中,我有#ssl = off
  • 哦,我现在明白了。 ssl = off 之前的哈希字符 # 表示这是一个注释行,即它没有被考虑在内。我删除了哈希,现在参数ssl 实际上设置为off。我再次从客户端运行查询,它确实快得多。感谢您的帮助。

标签: postgresql query-performance


【解决方案1】:

其实问题和这个问题一样:Postgresql: Query 10x slower in a different client

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2018-07-10
    • 2021-05-28
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多