数据库的遍历和分页

  • 根据更新时间遍历
select * from table where id > #{id} and update_time >= #{startDate} order by id limit #{limit}

Date now = new Date();
for (List pos = dao.selectWithLimit(0, now, 100);
     CollectionUtils.isNotEmpty(pos);
     pos = dao.selectWithLimit(pos.get(pos.size() - 1).getId(), now, 100)) {
  // 逻辑处理
}
  • 根据创建时间分页,根据时间和id排序,否则相同的create_time顺序是不确定的
  • 分页总数据小,达不到万级别就老老实实limit offset lenth语法吧
select * from table  order by created_time, id limit #{offset}, #{pageSize}
  • 这种方法没有办法直接根据页码跳转,只能一页一页往下翻,适合大表,分页总数据过万的场景
select * from table where create_time > #{preCreateTs} or (create_time = #{preCreateTs} and id > #{preId}) order by create_time, id limit #{limit}

你可能感兴趣的:(数据库的遍历和分页)