1

我们正在将基于 Java 的应用程序从 oracle 迁移到 mariadb。对于 mariadb 10.5.9,我们使用的是 hibernate-5。当我们的应用程序运行时,我们在 maxscale 查询过滤器中观察到,调用了太多的选择数据库查询。如果没有 maxscale 和普通的 mariadb,我们看不到这个问题。我们使用的是 mariadb-java-client-2.6.0.jar,但即使使用最新的驱动程序 (2.7.2),我们也看到了问题。

tcpdump 显示未使用准备好的语句,每次都在构造语句。所以我假设在构造语句时调用 maxscale 选择数据库。

如此使用:

案例一:db.url=jdbc:mariadb://{host}:{port}/dbname?user=username&password=password?useServerPrepStmts=true

案例2:db.url=jdbc:mariadb://{host}:{port}/dbname?user=username&password=password?useServerPrepStmts=true&cachePrepStmts=true&prepStmtCacheSize=500&prepStmtCacheSqlLimit=1024

仍然在这两种情况下,我都看到使用了普通语句,并且经常调用 select 数据库查询。

请分享你的想法。

4

1 回答 1

0

正如评论中提到的,这是由MXS-3533引起的错误。您可以通过升级到 MaxScale 2.5.13 或更高版本来解决此问题。

于 2021-08-25T04:29:31.267 回答