Mysql分頁,資料量大時limit優化

2021-08-19 04:55:13 字數 820 閱讀 4632

mysql的優化是非常重要的。其他最常用也最需要優化的就是limit。mysql的limit給分頁帶來了極大的方便,但資料量一大的時候,limit的效能就急劇下降。

同樣是取10條資料

select * from order limit 10000,10

select * from order limit 0,10

查詢耗時就不是乙個數量級別的。

優化方案:首先獲取到offset的id然後直接使用limit size來獲取資料

1、offset比較小的時候。

select * from order limit 10000,10
select * from order where vid >= (select vid from order o2 by vid limit 10,1) limit 10
前者查詢時間在0.0004-0.0005之間,後者查詢時間在0.0005-0.0006之間

結論:偏移offset較小的時候,直接使用limit較優。這個顯然是子查詢的原因

。2、offset大的時候。

select * from order limit 10000,10
select * from order where vid >= (select vid from order o2 by vid limit 10000,1) limit 10

前者查詢時間0.0187

,後者查詢時間0.0061左右,後者比前者優數倍

MySQL資料量大時,delete操作無法命中索引

最近,在脈脈上看到乙個樓主提出的問題 mysql資料量大時,delete操作無法命中索引 並且還附上了相關案例截圖。最終,樓主通過開啟mysql分析優化器追蹤,定位到是優化器搞的鬼,它覺得花費時間太長。因為我這個是測試資料,究其原因是因為資料傾斜,導致計算出的資料佔比較大 花費時間長。大家要記住一點...

MySQL資料量大小查詢

找到information schema 資料庫 存放了其他的資料庫的資訊 a 伺服器中登入並進入information schema use information schema b 使用第三方工具找到庫,查詢即可 1 查詢所有資料的大小 示例以mb為單位 select concat round ...

mysql關於資料量大的時候分頁分批處理

下面是 其中mysqli query語句都被微擎封裝過了,可以不用注重具體的語法,看思路。sql select count id as count from ims lwxleon box data 計算出總記錄數 分頁處理 countnum pdo fetchall sql countnum in...