查询数据库时,如果数据返回过多,考虑分批进行。

假设你的订单表有 10 万数据要更新状态,不能一次性查询所有未更新的订单,要分批。

反例:

List list = sqlMap.queryList("select * from Order where status='0'");
for(Order order:list){
  order.setStatus(1);
  sqlMap.update(order);
}

正例:

Integer count = sqlMap.queryCount(select count(1) from Order where status ='0');
while(true){
    int size=sqlMap.batchUpdate(params);
    if(size<500){
        break;
    }
}

 

你可能感兴趣的:(查询数据库时,如果数据返回过多,考虑分批进行。)