gpt4 book ai didi

java - 慢读查询导致其他 c3p0 线程阻塞 acquireStatement

转载 作者:行者123 更新时间:2023-11-29 01:58:31 25 4
gpt4 key购买 nike

我有一个表 articles 有 500k 行。我仅通过网络应用程序对其使用 select 查询。我的所有页面加载速度都很快(约 20 毫秒),每个页面都包含一两个快速查询(每个约 10 毫秒)。这些快速查询可能会从 articles 表中选择一些内容,或者做一些不相关的事情,比如从另一个小表(5 行)中选择一行。

我在这个网络应用程序上每秒有 30 次网页浏览,没有问题。

有时,尽管特定页面执行的选择查询非常慢(约 30 秒),因为它几乎对 articles 表的 500k 行进行了全表扫描,但只返回 3 行。发生这种情况时,其他快速页面开始严重减速,并在某个时候完全阻塞。

请注意,所有页面都使用事务并且所有查询都是select,因此它们应该不会相互影响太多,性能方面。

我还通过从控制台(在 webapp 的范围之外)手动执行这个慢速查询来验证上述内容,并且来自 webapp 的快速页面根本不受影响。所以我认为应用层发生了一些奇怪的事情。

知道为什么会这样吗?为什么所有线程都在等待 com.mchange.v2.c3p0.stmt.GooGooStatementCache.acquireStatement

一些数据:

最佳答案

很可能运行缓慢的预处理语句即将被从语句缓存中逐出。这将导致其他线程等待直到语句可以关闭。增加语句缓存大小应该可以解决该问题。

关于java - 慢读查询导致其他 c3p0 线程阻塞 acquireStatement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com