MySQL 分頁優化

2021-08-15 22:41:21 字數 470 閱讀 7214

mysql 用 limit offset, length 進行分頁。但當表記錄數很大,會發現大頁數的查詢時間明顯比小頁數的查詢時間大。

mysql並不是跳過 offset 行,而是取 offset+n 行,然後返回放棄前 offset 行,返回 n 行,當 offset 特別大的時候,效率就非常的低下

解決方式一:在業務上限制總頁數。

解決方式二:借助索引,快速定位。

方式二是比較常用的。

示例:device_version_stat 表記錄數很大,如果需要把該錶的資料匯出到 excel ,後面的資料查詢會相對慢。如果是按 id 降序,可以借助 id 主鍵先快速定位到查詢範圍,

第一頁的 maxid = null,第二頁的 maxid = 具體的某個值1,第二頁的 maxid = 具體的某個值2,...

在查詢時帶上以下條件,查詢效率就會高很多,

and id > #

and id < #

mysql的分頁優化 mysql分頁優化

有個200多萬的使用者表,顯示列表時非常慢,查了一下原來使用了limit進行分頁。前幾頁用時很少 但是後面頁數就簡直不可忍了,實際的業務邏輯還有排序,就更慢了 試試用查詢時用帶索引的鍵來確定範圍。最大的id是103948598 時間和用limit比相差幾千倍啊!使用explain 檢視一下 mysq...

mysql 分頁優化 Mysql 查詢分頁優化

全表掃瞄,速度極慢 limit 語句的查詢時間與起始記錄的位置成正比 mysql 的 limit 語句是很方便,但是對記錄很多的表並不適合直接使用 建立測試表 drop table if exists t user create table test t user id int 10 unsigne...

mysql 分頁優化 MySQL分頁優化實驗與總結

前言 分頁的sql優化是日常開發中經常遇到的問題,筆者在此做乙個經驗總結,並附上相應的實驗過程。實驗準備 若不想親自實驗的,可以直接跳過這一節。但還是建議大家做一下實驗,眼見為實。1.安裝測試資料庫 本次實驗使用的資料是mysql官方提供的employee資料庫,mysql官方提供了一些測試資料庫,...