ibatis缓存PrepareStaement问题浅析

线上一台job机器挂了,内存dump下来一看,发现jdbc占了7、8百兆内存。

分析了下发现,ibatis会针对prepared sql缓存对应的PrepareStaement对象,SessionScope类里有个map,在缓存开关打开后,就会缓存到map里。sql的样式如:select * from order where id in(?,?,?...)

由于我们in里面的个数不定,而且很多,生成了一堆不同的sql,导致内存膨胀。解决方法就是将in的个数固定下来

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容