在做一个项目的时候,偶然发现mybatis特别慢,数据就600多,很不科学
百度一下,有很多说什么sql语句问题,类型不匹配==,我是新手不太懂,偶然的机会在mybatis配置添加了一个fetch参数
好了。。。。
解决了问题,顺便,网上查一下具体原因:
jdbc在查询的时候,每次会从游标中取10条数据,连续重复,每一次重复都会进行一次数据库交互,交互都是非常耗时间的,而fetchSize就是设置每次查询出来的数据条数,保存进缓存中,以后每次游标取10条数据,就会从内存中读取10条数据,这样不需要进行数据库交互,耗时也就变少了。以下来自百度....
ORACLE JDBC驱动默认的FETCHSIZE为10。一般为了方便,我们会在数据源层面上来设置fetchsize。
- 在没有记录返回的情况下,OCI方式中fetchsize设置越大,对性能的影响越大。
- 在没有记录返回的情况下,THIN和mysql的方式中,fetchsize的大小,对于性能影响不大。
- 当返回结果集较大时,设置较大的fetchsize,对性能会有很大的提升。
- Fetchsize设置大于返回的记录数时,对于性能的提升没有任何的意义,反而会增加内存的开销。