最近一个项目信息量很大,大概50W以上,想求一个高效率的分页技术。希望各位高手不吝赐教

解决方案 »

  1.   

    那还是指sql的优化啊分页我一直是封装成一个对象来做的,你可以试试
      

  2.   


    即时查询出你所要的信息:
    eg
    /** 
    * 实现新闻的分页查询 
    * @param size 每页显示的大小 
    * @param currentPage 当前的页码 
    * @return 新闻列表 
    */ 
    public List <News> findNewsByCondition(int size, int currentPage) { 
    int length=0; 
    if(currentPage>1){ 
    length = size ; 
    }else{ 
    length = size * (currentPage-1); 
    } String sql = "select top " 
    + size 
    + " * from news where  newsID not in ( select top " 
    + length 
    + " newsID from news order by newsID desc ) order by newsID desc"; 
    List <News> items = new ArrayList <News>(); 
    Result rs = SqlHelper.getRs(sql); 
    if (rs != null && rs.getRowCount() > 0) { 
    for (int i = 0; i < rs.getRowCount(); i++) { 
    Map map = rs.getRows()[i]; 
    items.add(get(map)); 
    } } 
    return items; } 
      

  3.   

    建议用sql语句进行分页,那样效率会高很多
      

  4.   

    好像是数据量大于50W条以上的用sql语句分页效率高!
      

  5.   

    试下用ExtJs的分页工具吧
    不仅外观漂亮,也很实用,但效率问题,我就没有具体测试过了。。
    (提供一种方法。。)
      

  6.   


    我用到是oracle10g  用hibernate做啊
      

  7.   

    首先所谓的优化SQL 是说 要多少数据就查多少数据,你一页只显示10条数据那么我就只查询10条数据。如果用MS-SQL:
    String sql = "select top "
    + size
    + " * from news where  newsID not in ( select top "
    + length
    + " newsID from news order by newsID desc ) order by newsID desc"; 
    这是MS-SQL的排除法,最简单的是MYSQL:
    select * from tableName  limit startindex , size;startindex 是重第几页开始,一般是 (当前页 - 1)  * 每页要显示多少条数据。
    size 是每页要显示多少条数据。