正在探索HikariCP连接池库,当前在我们使用Apache DBCP2提供连接池的应用程序中,它允许通过指定这些属性在连接池级别设置准备好的语句缓存:

<property name="poolPreparedStatements" value="true"/>
<property name="maxOpenPreparedStatements" value="20"/>

但是HikariCP在wiki中明确提到,库中不支持这样的功能,而是依赖于相应的jdbc驱动程序来为preparedstatement设置缓存 .

由于连接池将跨线程共享,我认为准备语句的连接级缓存将是要走的路,我不确定缓存在jdbcdriver级别的行为,如果它为预备语句锁定某种类型,导致一些争用?

如果应用程序需要处理大量查询作为每天执行的例程的一部分,那么将提出哪些建议?