在我們進行資料查詢時,不可避免要碰到分頁的問題。我們通常會在返回資料**頁面下方顯示如下資訊用於對分頁的資訊的操作:
總數: 200 [首頁]
[尾頁]
使用sql語句計算出符合條件的記錄總數
select count(1) from table where *** in (1,2,3)
通過如下的sql獲取指定頁面的資料
select * from table where *** in (1,2,3) order by id limit #offset#, 10
如果表的資料量達到千萬、億級的數量級時,以上方法就不可行了。使用以上的sql語句計算符合條件的資料總數時,會花費大量的時間。我們可以使用如下方法解決這個問題
避免總數的查詢
新的分頁的資訊的操作格式如下:
事實上google就是這樣做的。在檢視第一頁搜尋結果的時候google只會顯示前十頁(共100個條目),並不顯示搜尋結果條目總共有多少。檢視第二頁的時候,僅僅會多顯示一頁。
如果必須要顯示總數,可以使用如下方法
mysql大資料量分頁查詢優化總結
mysql的分頁查詢十分簡單,但是當資料量大的時候一般的分頁就吃不消了。傳統分頁查詢 select c1,c2,cn from table limit n,m mysql的limit工作原理就是先讀取前面n條記錄,然後拋棄前n條,讀後面m條想要的,所以n越大,偏移量越大,效能就越差。1 limit語...
mysql大資料量分頁查詢優化
參考文章 mysql的分頁查詢十分簡單,但是當資料量大的時候一般的分頁就吃不消了。傳統分頁查詢 select c1,c2,cn from table limit n,m mysql的limit工作原理就是先讀取前面n條記錄,然後拋棄前n條,讀後面m條想要的,所以n越大,偏移量越大,效能就越差。1 盡...
mysql大資料量分頁查詢優化
參考文章 mysql的分頁查詢十分簡單,但是當資料量大的時候一般的分頁就吃不消了。傳統分頁查詢 select c1,c2,cn from table limit n,m mysql的limit工作原理就是先讀取前面n條記錄,然後拋棄前n條,讀後面m條想要的,所以n越大,偏移量越大,效能就越差。1 盡...