MySQL實現分頁查詢

2022-08-23 03:57:07 字數 1689 閱讀 9896

一般情況下,客戶端通過傳遞 pageno(頁碼)、pagesize(每頁條數)兩個引數去分頁查詢資料庫中的資料,在資料量較小(元組百/千級)時使用 mysql自帶的limit來解決這個問題:

收到客戶端 

select * from table limit (pageno-1)*pagesize, pagesize;

收到客戶端 

select * from table limit (pageno-1)*pagesize,pagesize;

在資料量較小的時候簡單的使用limit進行資料分頁在效能上面不會有明顯的緩慢,但是資料量達到了萬級到百萬級sql語句的效能將會影響資料的返回。這時需要利用主鍵或者唯一索引進行資料分頁;

假設主鍵或者唯一索引為 good_id 

收到客戶端 

select * from table where good_id > (pageno-1)*pagesize limit pagesize; 

–返回good_id為40到50之間的資料

當需要返回的資訊為順序或者倒序時,對上面的語句基於資料再排序。order by asc/desc 順序或倒序 預設為順序

select * from table where good_id > (pageno-1)*pagesize order by good_id limit pagesize; 

–返回good_id為40到50之間的資料,資料依據good_id順序排列

一般情況下,客戶端通過傳遞 pageno(頁碼)、pagesize(每頁條數)兩個引數去分頁查詢資料庫中的資料,在資料量較小(元組百/千級)時使用 mysql自帶的limit來解決這個問題:

收到客戶端 

select * from table limit (pageno-1)*pagesize, pagesize;

收到客戶端 

select * from table limit (pageno-1)*pagesize,pagesize;

在資料量較小的時候簡單的使用limit進行資料分頁在效能上面不會有明顯的緩慢,但是資料量達到了萬級到百萬級sql語句的效能將會影響資料的返回。這時需要利用主鍵或者唯一索引進行資料分頁;

假設主鍵或者唯一索引為 good_id 

收到客戶端 

select * from table where good_id > (pageno-1)*pagesize limit pagesize; 

–返回good_id為40到50之間的資料

當需要返回的資訊為順序或者倒序時,對上面的語句基於資料再排序。order by asc/desc 順序或倒序 預設為順序

select * from table where good_id > (pageno-1)*pagesize order by good_id limit pagesize; 

–返回good_id為40到50之間的資料,資料依據good_id順序排列

Mysql 分頁查詢 快照 Mysql分頁查詢優化

select from orders history where type 8 limit 1000,10 該條語句將會從表 orders history 中查詢offset 1000開始之後的10條資料,也就是第1001條到第1010條資料 1001 id 1010 資料表中的記錄預設使用主鍵 一...

mysql 分頁查詢 失效 mysql分頁查詢

比如每頁10條,分頁查詢 語法 select from table limit offset,rows offset指定要返回的第一行的偏移量,rows第二個指定返回行的最大數目。初始行的偏移量是0 不是1 select from table limit 0,10 第一頁 select from t...

oracle和mysql實現分頁查詢

使用偽劣rownum實現分頁查詢 可以執行 select rownum from emp where rownum 6 不可以執行 select rownum from emp where rownum 6 不可以執行,無結果 select rownum from emp where rownum ...