mysql 並不是跳過 offset 行,而是取 offset+n 行,然後放棄前 offset 行,返回 n 行,那當offset 特別大的時候,效率就非常的低下,要麼控制返回的總頁數,要麼對超過特定閾值的頁數進行 sql改寫。
我們可以先快速鎖定需要獲取的id段,然後再關聯查詢:
select a.* from 表 1 a, (select id from 表 1 where 條件 limit 100000,20 ) b where a.id=b.id
當limit 10,0000條資料時,查詢耗時從0.46秒減少到了0.07秒:
當limit 100,0000條資料時,查詢耗時從4秒減少到了0.5秒
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 盡...
大資料量資料分頁查詢優化方案
在實際場景中會遇到這樣的一種情況 資料量很大,而且還要分頁查詢,如果資料量達到百萬級別之後,效能會急劇下降,導致查詢時間很長,甚至是超時。接下來我總結了兩種常用的優化方案,僅供參考。但是需要注意的是有個前提 主鍵id是遞增且資料有序。1 使用子查詢優化 這種方式先定位偏移位置的 id,然後往後查詢,...