preparedstatment

useServerPrepStmts=true&cachePrepStmts=true

服务端编译和缓存选项

按照文章介绍 https://www.cnblogs.com/micrari/p/7112781.html

经过3测试取平均值,情况如下:

本地预编译:65769 ms

本地预编译+缓存:63637 ms

服务端预编译:100985 ms

服务端预编译+缓存:57299 ms

从中我们可以看出本地预编译加不加缓存其实差别不是太大,服务端预编译不加缓存性能明显会降低很多,但是服务端预编译加缓存的话性能还是会比本地好很多。

主要原因是服务端预编译不加缓存的话本身prepare也是有开销的,另外多了大量的round-trip


自己打开general log 查看

useServerPrepStmts=true&cachePrepStmts=true

con.prepareStatement(sql) + execute + close() ; 多次循环, = prepare 创建1次+ excute 多次       //close()后反而会触发服务端缓存

con.prepareStatement(sql) + execute ; 多次循环, = 多次循环(prepare 创建1次+ excute 1次)


useServerPrepStmts=true 

con.prepareStatement(sql) + execute + close() ; 多次循环, =  多次循环(prepare 创建1次+ excute 1次)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容