如何使用 Java 连接 MySQL 数据库并开启预编译?
如何在 mysql 客户端启用预编译?
问题:
回答:
开启 mysql 预编译有两种方式:
服务端预编译
在应用程序连接信息中添加以下参数:
useserverprepstmts=true cacheprepstmts=true
这将在 mysql 服务器端启用预编译和预编译缓存,从而提高性能。
客户端预编译
mysql 默认使用客户端预编译,这意味着在发送给服务器之前,客户机会将问号 (?) 替换为具体的值。客户端预编译不会在服务器端启用预编译,因此性能提升不如服务端预编译明显。
同时启用服务端和客户端预编译
您可以同时开启服务端和客户端预编译,以获得最佳性能:
connection.setAutoPrepareStatementCache(true); connection.setAutoReconnect(true); connection.setPrepareThreshold(5);
上述代码配置了以下设置:
- setautopreparestatementcache(true):启用预编译缓存。
- setautoreconnect(true):在连接丢失时自动重新连接。
- setpreparethreshold(5):设置预编译语句的阈值,即只有当语句被执行超过 5 次时才会被预编译。
注意:
mysql 版本 5.7 及更高版本默认启用服务端预编译和预编译缓存。