一般情況下在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...