Grails 4中使用HikariCP时MySQL性能配置项的放置位置疑问
关于Grails中HikariCP+MySQL预编译语句缓存配置的位置说明
结论:这四个配置项必须放在dataSource下的properties块中,也就是你提供的第二种配置方式才是正确的。
原因很直接:
- 根级
dataSource块里的配置是Grails框架自身的核心参数(比如dbCreate、dialect、url这类),Grails不会把这里的非框架专属参数传递给底层的HikariCP连接池或者MySQL JDBC驱动。 prepStmtCacheSize、prepStmtCacheSqlLimit、cachePrepStmts、useServerPrepStmts都是MySQL JDBC驱动的原生配置属性,需要通过HikariCP传递给驱动才能生效。而Grails中只有properties块里的参数会被作为连接池/驱动的原生属性进行传递,最终被HikariCP设置到MySQL连接的属性中。
要是放在根级dataSource块里(第一种配置),这些参数根本不会被识别,预编译语句缓存的优化也就起不了作用。
内容的提问来源于stack exchange,提问作者kofhearts
相关产品推荐
相关产品推荐

