场景: 使用Mybatis (3.5.10)@SelectProvider注解执行动态sql 在高并发查询时 QPS 很低
问题复现
-
mybatis 配置 (getOfflineConfigSqlTemplate 该方法返回的是动态sql )

-
压测结果

-
观察线程阻塞情况

-
此时的QPS 在 80 左右
通过测试结果发现是mybatis 框架的问题 。使用原生的jdbc 连接池执行 ,对代码进行简单改造如下
-
将注解执行sql 逻辑 换成 jdbc 连接池方式

-
相同压力相同资源下 再次进行压测 观察结果 :
-
线程无阻塞

-
QPS 从80 提升至 460
文章探讨了在高并发场景下,使用Mybatis3.5.10的SelectProvider注解执行动态SQL导致QPS低的问题。对比原生JDBC连接池,发现Mybatis在处理这类请求时线程会阻塞,性能明显下降。结论是动态SQL在非高并发查询中更为适用。
513

被折叠的 条评论
为什么被折叠?



