mysql 开启预编译_mysql 预编译 为什么默认不开启?

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 缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值