逻辑分页和物理分页

Posted 成功的路上总是离不开贵人的帮助,名师的指点和小人的刺激。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逻辑分页和物理分页相关的知识,希望对你有一定的参考价值。

1、物理分页:

        物理分页就是数据库本身提供了分页方式,如MySQL的limit,好处是效率高,不好的地方就是不同数据库有不同的搞法。

 

2、逻辑分页:

 

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

 

 

3、常用orm框架采用的分页技术:

 

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

 

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

 

   mybatis的物理分页插件:

 

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

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

 

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

 

以上是关于逻辑分页和物理分页的主要内容,如果未能解决你的问题,请参考以下文章

物理分页和逻辑分页

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

面试官:谈谈MySQL的limit用法逻辑分页和物理分页

数据分页(物理分页和逻辑分页)

昨天的美团面试题:谈谈MySQL的limit用法逻辑分页和物理分页

关于mybatis物理分页的问题,求大神帮忙看看