文章目錄
實際應用場景說明
服務器配置
: 阿里雲 2核4G mysql服務器生產場景
: 將mysql數據庫中的文章數據進行批量化處理更新問題詳情
: 當分頁數過大時查詢速度很慢解決方法
: 使用了between and 的方式來加快了查詢速度
1.limit方法的局限性
select * from articles limit 100,500
> 查詢0.06秒
- 1
- 2
-
limit是最常用的分頁方法,它在執行過程中,相當於先遍歷了前100個,然后取了第100到600個,舍棄了前100個.但是limit僅適用於小數據范圍內的分頁查詢
小數據
select * from articles limit 170500,500
查詢 193s
-
當查詢170500開始的500條數據時,因為要先查詢前170500條數據,數據內容龐大,所以查詢很慢
2.通過主鍵id過濾的方法
select * from articles where id >(select id from articles limit 170500,1) limit 500
> 查詢 2.5s
- 1
- 2
- 這種方法的好處是首先通過id索引快速定位到了分頁數據的起始位置(
避免了全文檢索
),並且用limit 方法快速獲取了從起始位置往后的500個數據。
3.between and
select * from articles where id between (select id from articles limit 170000,1) and (select id from articles limit 170500,1)
> 查詢 2s
- 1
- 2
最優方法between and
前一種方法相當於是先利用id索引的優勢快速定位到了分頁的起始位置,然后往后截取了500條數據.between and的方法相當於也是利於id索引的優勢,但是同時定位了分頁的起始和終止的位置,截取了中間的信息,因此速度會更快.