前言:
而今兄弟们对“oracle游标缓存”可能比较关注,大家都需要分析一些“oracle游标缓存”的相关文章。那么小编同时在网上网罗了一些有关“oracle游标缓存””的相关知识,希望看官们能喜欢,咱们快快来了解一下吧!版本说明,mysql驱动版本8.x,druid版本1.2.8。
挑几个大家不懂的属性,或者csdn讲错的属性来讲
pool-prepared-statements:(csdn上面是这么说的:是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。)我笑而不语,这TM还真能扯,要不是我看过源码,我真就信了。我建议设置为true,首先这个缓存的首要目的是缓存sql,是经过语法语义验证过的没有任何问题的sql。例如你有一段很长的sql,需要经常用到,那么使用缓存就可以不用每次都进行语法语义的分析了,大大地提高了性能。这缓存的另外一个功能就是对Oracle的游标缓存,这个只是一个附加的次要功能。强烈建议开启来提升mysql性能
max-pool-prepared-statement-per-connection-size: 当pool-prepared-statements开启以后,每个connection缓存的sql数量,采用LRU淘汰算法,建议设置256。
time-between-connect-error-millis:说一下这个属性吧,网上基本没有人说过这个属性,该属性是创建新的连接时,假若创建失败,重新创建的时间间隔,默认是500毫秒。官方这个时间间隔真的是坑,假若偶尔网络不好,就会疯狂地刷,建议设置为60000毫秒
connection-error-retry-attempts: 官方默认为1,就是说,假若创建新的连接时,假若创建失败,会马上重试一次,不会等待上面的time-between-connect-error-millis设置的值
validation-query: csdn上面很多人都说这个值要设置select 1,先不说官方默认值就是select 1,其实这个变量druid压根就没用,因为mysql驱动是使用ping来检测是否连接正常的,除非你的驱动版本过低,不支持Ping才使用select 1来检测。
test-on-return:默认为false。是否在回收连接的时候,测试该连接是否可用,不可用则不回收
time-between-eviction-runs-millis: 检测连接的时间间隔值,默认60000毫秒
keep-alive: 是否保持连接,默认false。个人建议设置为true,同时把test-while-idle/test-on-borrow/test-on-return该三个值全部设置为false。假若设置为true,当连接的空闲时间为默认的120000(time-between-eviction-runs-millis*2)毫秒时,去检测该连接是否可用,不可用则丢弃
标签: #oracle游标缓存