Spring MyBatis很慢
我想知道为什么MyBatis在我的应用程序中很慢 对于Spring MyBatis很慢,spring,mybatis,Spring,Mybatis,我想知道为什么MyBatis在我的应用程序中很慢 对于选择计数(*),所用时间为: 20秒-第一次请求 2-3秒-后续请求 缓存很可能会加快后续请求的速度 配置 3层(WPF用户界面-Java后端-Oracle数据库) JBoss服务器将Java作为WPF UI的Web服务公开 请求时间==WPF UI发送和接收结果之间的时间 正在使用Spring Framework 尝试过的方法 禁用日志记录 我不知道禁用日志子系统和log4j是否有区别;但是,对于SELECT COUNT(*),我得到的
选择计数(*)
,所用时间为:
- 3层(WPF用户界面-Java后端-Oracle数据库)
- JBoss服务器将Java作为WPF UI的Web服务公开
- 请求时间==WPF UI发送和接收结果之间的时间
- 正在使用Spring Framework
SELECT COUNT(*)
,我得到的最好成绩是15秒
我把问题解决了!MyBatis现在需要的查询时间与直接针对数据库运行的查询时间相同 这是N+1选择问题(描述得很好) 解决方案 嵌套结果(与嵌套选择相反),这也在上面提到的同一页中描述 使用4个连接对我的SQL查询造成的影响是巨大的:
- 之前:38秒
- 之后:3秒
我通过将问题隔离到MyBatis Spring(删除JBoss部分)周围的一个JUnit测试用例来跟踪问题。您是否看到类似的行为直接在数据库上运行相同的查询?@AngerClown当我直接查询时,响应非常快。对于
SELECT COUNT(*)
,大约是0.3秒;对于包含2个连接和一个子查询的查询,大约是1.5秒。