逻辑分页与物理分页的区别

1.物理分页

物理分页就是数据库自己提供了分页方式,如MySQL的limit,oracle的rownum ,好处是效率高,很差的地方就是不一样数据库有不一样的搞法。sql

2.逻辑分页

逻辑分页利用游标分页,好处是全部数据库都统一,坏处就是效率低。数据库

3.经常使用ORM框架采用的分页技术

①:hibernate采用的是物理分页;mybatis

②:MyBatis使用RowBounds实现的分页是逻辑分页,也就是先把数据记录所有查询出来,然在再根据offset和limit截断记录返回(数据量大的时候会形成内存溢出),不过能够用插件或其余方式能达到物理分页效果。oracle

 

 mybatis的物理分页插件:框架

常见的两种: Mybatis-Paginator Mybatis-PageHelper函数

   为了在数据库层面上实现物理分页,又不改变原来MyBatis的函数逻辑,能够编写plugin截获MyBatis Executor的statementhandler,重写SQL来执行查询性能

分页结论:
1.物理分页速度上并不必定快于逻辑分页,逻辑分页速度上也并不必定快于物理分页。
2.物理分页老是优于逻辑分页:没有必要将属于数据库端的压力加诸到应用端来,就算速度上存在优点,然而其它性能上的优势足以弥补这个缺点。
3.在分页工做前,有必要了解使用数据库自己的一些sql语句特色更好的分页spa

相关文章
相关标签/搜索