问题分类:驱动层异常

关键词:Druid、GIS 查询、read time out、socket 超时

问题描述

在执行空间查询语句时,使用不同连接池会表现出不同的行为:

使用 HikariCP 时,无论查询结果是否为空,都不会报错;

使用 Druid 时,如果查询返回数据则正常;但当结果集为空时,首次执行报 read time out,再次执行则报 This socket has been closed。

原因分析

问题主要出在绑定变量的执行策略。当使用 Druid 连接池进行 GIS 查询时,某些场景下执行效率低下,导致中间件层面触发了 socket 超时限制(默认 10 秒)。

解决建议

调整 Druid 的 socket 超时时间配置参数,可有效规避该问题。建议设置一个更长的超时时间,如 30 秒或以上,以保障复杂空间查询的响应窗口。

受影响版本

YashanDB 23.2.3.100

补充说明

虽然问题出现在 Druid 层,但根本原因仍与绑定变量下 GIS 查询的性能表现有关,可配合 SQL 优化进一步改善响应速度。


数据库砖家
1 声望0 粉丝