接触web不久,需要做分页显示,现在分页技术好象很多阿现在各种分页技术从数据库角度来看是把数据全部查询出来然后按请求参数分页传给客户端还是每次的分页请求都要从数据库中读取呢?

解决方案 »

  1.   

    谢谢,大概了解了
    还有个问题,这种查询“第二次查询,所请求的次数也就是从第几条到第几条”,数据库是不是得支持这种查询?我的意思是,比如想按照时间先后顺序分页查询,第一次查询的时候应该查询出按照时间顺序并且取前10条,第二次取11—20条的时候应该记住上一次结果集么?还是要重新select数据库?如果记住上一次的话好像又是查询出所有的记录了?
      

  2.   

    为避免大批量数据一次性从数据库读取造成对数据库以及服务器的压力,采用分条数显示
    以下是主流数据库
    一:Oracle select * from (select rownum,name from table where rownum <=endIndex ) 
    where rownum > startIndex
    二:DB2
    DB2分页查询select *  from (select row_number() over( order by name desc) as rownum,id, name  from t_user)   
    where rownum between 6 and 10三:MySQLselect   *   from   table   limit   start,pageNum四:MSSQLSELECT TOP 页大小 * FROM TestTable WHERE (ID NOT IN (SELECT TOP 页大小*页数 id  FROM  ORDER BY id))
    ORDER BY ID
      

  3.   

    从jdbc可以实现,当然还有很多持久化框架hibernate ibatis