问题分类:驱动层异常
关键词: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 优化进一步改善响应速度。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。