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

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

try{
List list=new ArrayList();

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

2个回答

我的建议是:
看看你的 具体数据的情况了,具体情况:我认为是:在数据库中数据多的情况下:如上百万,上千万的数据量还是游标处理的好一些,当你的数据量不是很大的时候还是选择数据库分页吧!具体的请看我的博客,有提到分页的性能情况!
http://blog.csdn.net/u011225629/article/details/46775947
http://blog.csdn.net/u011225629/article/details/46786507
http://blog.csdn.net/u011225629/article/details/46786729

u011225629
君寞傲 回复bzwc830819: 那我们不如试试索引,使用索引,这样性能或许会更高一些。
大约 5 年之前 回复
bzwc830819
bzwc830819 问题是jdbc游标会不会把整个表都先查出来再进行游标移动?这样的话性能开销就太大了!
大约 5 年之前 回复

不同的数据库实现不同,sql server的行号基于游标,所以性能应该差不多。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐