在之前的几次请求之后数据库请求变慢(PostgreSQL)

问题描述 投票:0回答:1

我正在做“for循环”,其中我通过rest api端点调用另一个服务,该端点向数据库发送请求以获取数据并将其返回到我的服务。

在 9 个请求之后,第 10 个请求变慢了很多 - 从 1 秒到 30-40 秒(90% 的情况下是第 10 个请求。有时是另一个请求)。例如,11 - 17 个请求速度非常慢,然后接下来的 9 个请求速度很快。然后速度减慢,这种情况一遍又一遍地发生。

我意识到,当我从查询中删除“like 'text%'”条件时,或者当我例如:在 for 循环中放置断点 -> 传递 8 个请求 -> 中断与数据库的连接 -> 重新连接到数据库 -> 时,问题就消失了通过接下来的 8 个请求 -> 断开连接 -> 重新连接 -> 重复 x 次

我不知道这里出了什么问题。有什么想法吗?

我想补充一点,我正在使用带有 hiberante 和 hikari 的 spring boot 来处理与数据库的连接以及我使用 WebClient 的服务之间的通信。

sql spring database spring-boot hikaricp
1个回答
0
投票

我可以推测您可以在以下地方进行检查:

  • LIKE 'text%'
    情况可能是导致性能缓慢的原因。这样的过滤条件依赖于有效的索引。

  • 如果您的表在 Postgres 端建立索引,那么应用过滤器时您的数据库表可能很大。带有

    LIKE
    子句的查询可能会变慢,因为它们需要扫描大量数据。

  • 如果还涉及任何缓存,则在一定数量的请求后可能会出现问题。

此外,顺便说一句,您能否详细说明是否设置了可提高性能的 Hikari CP 属性 (

maximum-pool-size
)。有时减少该数量也可以提高性能。

© www.soinside.com 2019 - 2024. All rights reserved.