日期:2014-05-16  浏览次数:20764 次

Mysql是支持预编译的,只是默认没开启
近日看到一帖子,曰Mysql不支持预编译,并做了大量的测试来证明是没有预编译。

其实Mysql不是不支持,只是默认的状态下,预编译的功能并没有开启。这里的默认状态是指的jdbc url 的默认连接参数。

采用show status like '%prepare%'; 可以看到mysql缓存了预编译的sql的数目;

jdbc:mysql://xxx.22.11.31:3306/dbname?useServerPrepStmts=true

如果默认useServerPrepStmts=true不加上的话,所有的preparedStatement都给白费了。show status like '%prepare%';看到的count始终是0。
1 楼 sun_2008 2011-09-27  
再加一个参数cachePrepStmts=true才行,好像预编译的语句也只对同一个连接有用。