SpringBoot Mybatis 数据库流式读取优化(二)

本文分析了SpringBoot Mybatis中流式读取和批量读取数据库数据的性能差异。流式读取虽然减少内存使用,但Old Gen堆区消耗严重,GC耗时长;批量读取则内存消耗高,但GC效率更高,Full GC触发少,运行更流畅。选择哪种方式需结合实际业务需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      还是接着上次文章的话题,流式数据库读取和批量数据获取中,方式各有千秋,流式数据读取可以很大的解决内存不足问题,而批量读取可以方便数据一次性收集,编码方便。但是流式真的比批量数据读取占有性能场景下的优势吗?这两天我通过Jconsle分析了下两种场景GC和堆内存的消耗。

流式读取方式:


从图中可以看出,Old Gen堆区的内存消耗十分严重,


而程序运行16分钟,GC耗时高达33S,这可以看出流式数据读取采用的策略:时间换空间,减少空间的使用必然带来大量的OldGen的消耗,在高性能程序处理上,这样带来容忍度是相当不行。

批量读取数据:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值