mysql limit分頁查詢效率

2022-07-03 16:45:12 字數 481 閱讀 6758

對於有大資料量的mysql表來說,使用limit分頁存在很嚴重的效能問題。

查詢從第1000000之後的30條記錄:

sql**1:平均用時6.6秒 select * from `cdb_posts` order by pid limit 1000000 , 30

sql**2:平均用時0.6秒 select * from `cdb_posts` where pid >= (select pid from `cdb_posts` order by pid limit 1000000 , 1) limit 30

因為要取出所有字段內容,第一種需要跨越大量資料塊並取出,而第二種基本通過直接根據索引字段定位後,才取出相應內容,效率自然大大提公升。

可以看出,越往後分頁,limit語句的偏移量就會越大,兩者速度差距也會越明顯。

實際應用中,可以利用類似策略模式的方式去處理分頁,比如判斷如果是一百頁以內,就使用最基本的分頁方式,大於一百頁,則使用子查詢的分頁方式。

mysql limit分頁查詢優化寫法

在mysql中進行分頁查詢時,一般會使用limit查詢,而且通常查詢中都會使用orderby排 序。但是在表資料量比較大的時候,例如查詢語句片段limit 10000,20,資料庫會讀取10020條資料,然後把前10000條丟棄,把最後的20條返回給你,這種消耗是可以避免的,也是沒必要的。下邊介紹幾...

mysql limit分頁查詢優化寫法

在mysql中進行分頁查詢時,一般會使用limit查詢,而且通常查詢中都會使用orderby排 序。但是在表資料量比較大的時候,例如查詢語句片段limit 10000,20,資料庫會讀取10020條資料,然後把前10000條丟棄,把最後的20條返回給你,這種消耗是可以避免的,也是沒必要的。下邊介紹幾...

Mysql Limit 分頁查詢優化詳解

select from table limit 5,10 返回第6 15行資料 select from table limit 5 返回前5行 select from table liwww.cppcns.commmfxqoydit 0,5 返回前5行 我們來寫分頁 物理分頁 semfxqoydle...