数据库分页和jdbc游标分页性能比较-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

小旋风柴进 2016-03-11 15:09:54 2919

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

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之类的,我的问题是,到底是在程序里用游标分页性能好呢还是数据库分页性能好?

Java 数据库连接 数据库
分享到
取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 18:59:21

    性能没有实际比较过,不过个人推荐 oracle使用 row_number,mysql使用limit。

    原因:

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

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

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

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程