我想知道为什么MyBatis在我的应用程序中慢。
对于SELECT COUNT(*)
,所用时间为:
缓存很可能会使后续请求更快。
禁用日志记录
我不知道是否禁用日志记录子系统和log4j会产生影响;但是,我得到的最好的是SELECT COUNT(*)
的15秒。
已禁用缓存和延迟加载
这最多可能造成5秒的差异。
上面列出了上述技术:
对于具有2个连接和1个子查询的嵌套SQL语句,所用时间为:
答案 0 :(得分:8)
我解决了问题! MyBatis 现在需要同时查询直接针对数据库运行。
N + 1选择问题(很好地描述了here)。
嵌套结果(与嵌套选择相对),也在上述同一页面上进行了描述。
它对我的SQL查询与4个连接的区别是巨大的:
我通过将其隔离到 MyBatis-Spring 的 JUnit 测试用例(删除 JBoss 部分)来跟踪问题。< / p>