当前位置:   article > 正文

数据库查询大量数据避免内存溢出的方法

数据库查询大量数据避免内存溢出的方法

原理就是分批查询。每次查询一定数量数据之后记录id,进行数据处理之后再继续查询继续处理,

allFrameObject = mapper.findAllFrameObjectByMaxId(minTime, beginRow, 1000);
while (CollectionUtils.isNotEmpty(allFrameObject)) {
      beginRow = allFrameObject.get(allFrameObject.size() - 1).getId() + 1;
      addTicketAndStateReport(allFrameObject, reports);
      allFrameObject = mapper.findAllFrameObjectByMaxId(minTime, beginRow, 1000);
  }
<select id="findAllFrameObjectByMaxId" resultMap="frameObjectData">
	select * FROM gsms_frame_object_data
	where id &gt;= #{beginRow} <if test="beforeDay!=null">and CREATE_TIME &gt; #{beforeDay} </if>
	order by
	id
	limit #{batchSize}
</select>
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号