天天看點

SQL---分頁查詢

分頁實際上就是從結果集中截取目前所需要展示的那部分内容。

為什麼需要進行分頁查詢?當使用SELECT查詢時,如果結果集資料量很大,比如有上萬條記錄,一次性查詢所有結果會變得很慢,是以需要使用分頁查詢。

分頁查詢的幾種方式:

1,限定+偏移(LIMIT ... OFFSET ...)

首先确定每頁需要顯示的結果數量pagesize,然後将LIMIT設定為pagesize,再根據目前頁的索引pageindex,計算OFFSET的值為pagesize*(pageindex-1)。

SELECT * FROM User
ORDER BY id
LIMIT 10 OFFSET 20;      

缺點:當LIMIT偏移量大的時候,查詢效率較低。

2,篩選+限定

比如我們要取的是從第10000行開始的10行記錄,那麼我們可以先把大于或等于10000行的資料查出來并排序,然後再取出前10行記錄。

SELECT * FROM User
WHERE id >= 10000
ORDER BY id
LIMIT 10;      

這種查詢方式能夠極大地優化查詢速度,基本能夠在幾十毫秒之内完成。

缺點:隻能使用于明确知道id的情況。