订单出票逻辑疑问
来源:19-12 增加轮询购票结果功能

小白ovo
2024-01-30
如下,请问这里为什么一次只查询5个订单进行出票,这不会增加数据库连接的开销吗?为什么不一次性把所有订单数据查询到内存中,然后再轮询出票。(难道是因为订单生成的速度有限?)
while (true) {
// 取确认订单表的记录,同日期车次,状态是I,分页处理,每次取N条
ConfirmOrderExample confirmOrderExample = new ConfirmOrderExample();
confirmOrderExample.setOrderByClause("id asc");
ConfirmOrderExample.Criteria criteria = confirmOrderExample.createCriteria();
criteria.andDateEqualTo(dto.getDate())
.andTrainCodeEqualTo(dto.getTrainCode())
.andStatusEqualTo(ConfirmOrderStatusEnum.INIT.getCode());
// 一次查询5个订单
// PageHelper.startPage(1, 5);
List<ConfirmOrder> list = confirmOrderMapper.selectByExampleWithBLOBs(confirmOrderExample);
....
}
写回答
2回答
-
甲蛙
2024-02-10
楼上同学说得对。
5只是个例子,实际可根据业务而定,每次查10或100,但是不能查全部,万一并发订单很多,全部放内存有可能会导致内存溢出
00 -
wyz666
2024-02-03
你内存突然炸了,哪个受影响的范围大?每次只取前5个,直到全部取完 和 一下全部取完;两者总的开销差不多吧?
00
相似问题