邏輯分頁與物理分頁的區別

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

相關文章
相關標籤/搜索