mysql 开启与编译(server)和缓存(client)
jdbc:mysql://127.0.0.1:3306/axon?useServerPrepStmts=true&cachePrepStmts=true
从那个版本开启的没有查到
这位作者做了调研,据作者说是MySQL Server 4.1之前不支持。但是而且5.0.5之后的版本是默认关闭的,注意这个关闭指的是客户端调用参数没有设置。
当然如果开启预编译功能的话,还要开启客户端缓存功能,否则有害无利。但是即使开了预编译功能也不会对程序带来多大改进,因为mysql的服务端预编译是session级别的,也就是说除非你的单个connection 进行了大量的重复某个SQL这个预编译功能才有意义。
5.7用户手册里有写明
8.10.4 Caching of Prepared Statements and Stored Programs
......
The server maintains caches for prepared statements and stored programs on a per-session basis.
Statements cached for one session are not accessible to other sessions. When a session ends, the
server discards any statements cached for it .
....................
最后一句的意思大概就是当session结束,那么server会扔掉所有的statements 缓存