分页之物理方式

    我在前面的《浅谈分页》中提到了分页的一般方式, 今天再讲一下物理分页的方式。

   物理分页和逻辑分页最大不同在于: 它利用了数据库本身的一些特性来分页,通俗一点的理解就是“利用了SQL语法的优化,提高了分页的性能”。

   物理分页不再使用JDBC驱动的ResultSet游标功能, 而依靠程序员对数据库的良好的理解,使用纯SQL语法进行分页。这种方式的示例代码如下(我用的是Oracle数据库)

    //查询当前页的记录
   String queryCurrentSql=" select b.* from "
         +" ("
         +" select rownum r,a.* from tbl_fwinfo  a where a.userid=? order by a.fwid "
         +" ) b"
         +" where b.r between ? and ? ";

  ————对这两种分页方式进行一下总结:

   (1)物理分页速度上并不一定快于逻辑分页,逻辑分页速度上也并不一定快于物理分页

   (2)物理分页总是优于逻辑分页: 没有必要将属于数据库端的压力加诸到应用端来,就算速度上存在劣势,然而在其他性能上的优点足以弥补这点缺失(如JVM内存使用量,占用CPU时间等)。

   (3)需要了解最优的物理分页方式: 各种数据库都有其自身对SQL语句的优化,因此在需要进行分页的工作之前,有必要了解数据库本身的一些SQL语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值