开发者社区> 问答> 正文

数据库分页和jdbc游标分页性能比较

我一直用的游标分页,也没遇到什么性能问题,就是下边这种:

try{
    List<T> list=new ArrayList<T>();
    if(page != null)
    {
        if (rs.last())page.setTotalRow(rs.getRow());
        //rs.beforeFirst();
        rs.absolute(page.getFirstRow());
    }
     
    T obj;
    for(int i=1 ; (page == null || i <= page.getPageSize()) && rs.next() ; i++)
    {
        obj=mapper.mapRow(rs, i);
        if(obj!=null)list.add(obj);
    }
     
    return list;
}finally{
    JdbcUtils.closeResultSet(rs);
}

还有一种就是数据库分页,用row_number之类的,我的问题是,到底是在程序里用游标分页性能好呢还是数据库分页性能好?

展开
收起
小旋风柴进 2016-03-11 15:09:54 5448 0
1 条回答
写回答
取消 提交回答
  • 性能没有实际比较过,不过个人推荐 oracle使用 row_number,mysql使用limit。

    原因:

    1.适用性的范围,如果不是使用JDBC直接操作数据库呢,比如用mybatis或者hibernate等,难道还要费二遍事获得connection然后按照jdbc的方式操作一遍嘛

    2.一个盒子里有100个物品,现在需要20个。一种是一次拿出20个,一种是拿20次一次一个。

    3.如果没记错的话,jdbc游标如果大量滚动查询,对内存消耗也是很客观的

    2019-07-17 18:59:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载