查詢limit MySQL如何實現分頁查詢

2021-10-16 09:51:42 字數 1122 閱讀 3170

一般情況下在mysql中進行分頁查詢時,會用到limit查詢,而且在查詢中都會使用到order by來進行排序。接下來將具體介紹mysql是如何實現分頁查詢的

分頁需求:

客戶端通過傳遞start(頁碼),limit(每頁顯示的條數)兩個引數去分頁查詢資料庫表中的資料,mysql資料庫提供分頁的函式有limit m,n,但是該函式的用法和我們的需求不一樣,所以就需要根據實際情況去改寫適合自己的分頁語句。例

查詢第1條到第10條的資料的sql是:

select * from table limit 0,10;

對應我們的需求就是查詢第一頁的資料:

select * from table limit (1-1)*10,10;

從上面的分析我們可以得出分頁sql的格式是:

select * from table limit (start-1)*limit,limit;

其中start是頁碼,limit是每頁顯示的條數。

建立主鍵或者唯一索引

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

例:返回10到50之間的資料

設主鍵或唯一索引為demo_id

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

基於資料再排序

當需要返回的資訊要按順序或者逆序時,就需要對上面的資料進行排序。可用order by asc表示順序,order bydesc表示逆序,一般情況下預設的為順序

例:返回的資料依照demo_id的順序進行排列

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

慢查詢實操

面試的時候問的多了,實操經驗太少了,沒有底氣,這裡具體的做一次 在my.ini中新增幾行 定義查詢多少秒的查詢算是慢查詢 long query time 2 配置慢查詢記錄檔案 slow query log on slow query log file msql slow query log 記錄下...

實訓單錶查詢

1.customer表 1 查詢所有顧客資訊。2 查詢姓名和聯絡人相同的顧客資訊 3 查詢所在城市是北京的顧客姓名,顧客位址,顧客所在城市,郵編。2.product表 1 查詢所有產品資訊 2 查詢產品名中帶有 小公尺 的商品資訊 3 查詢產品名中以 小 開頭或者產品描述中帶有 玫瑰 的產品資訊 4...

如何關閉與恢復visual studio實時偵錯程式

如何關閉與恢復visual studio實時偵錯程式 刪除 hkey local machine software microsoft windows nt currentversion aedebug debugger hkey local machine software microsoft n...