目前,在我使用 mysql-connector-java:5.1.36 的应用程序中,一切正常。但是当我将连接器升级到 mysql-connector-java:5.1.47 时,一个查询开始需要几分钟到两小时的时间来执行。如果我直接从终端或使用 v5.1.36 的应用程序运行相同的查询,则执行时间不到几秒钟。
MySQL 连接器 jar 版本如何影响查询性能?
目前,在我使用 mysql-connector-java:5.1.36 的应用程序中,一切正常。但是当我将连接器升级到 mysql-connector-java:5.1.47 时,一个查询开始需要几分钟到两小时的时间来执行。如果我直接从终端或使用 v5.1.36 的应用程序运行相同的查询,则执行时间不到几秒钟。
MySQL 连接器 jar 版本如何影响查询性能?
我找到了原因。mysql-connector-java:5.1.47及以上版本有一个变化:在连接字符串中使用UTF-8进行characterEncoding时,映射到MySQL字符集名称utf8mb4。而对于 mysql-connector-java:5.1.46 及以下,它对应于 utf8 (或者更合适的 utf8mb3 )。
链接:https ://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html
对于我的数据库,字符编码设置为 utf8(或者更合适的 utf8mb3)。由于此索引未在查询中使用。设置服务器属性后
character_set_server : utf8
它工作正常。