MySQL大資料量快速分頁實現

2022-01-13 02:04:15 字數 713 閱讀 8694

以下分享一點我的經驗

一般剛開始學sql語句的時候,會這樣寫

**如下:

select * from table order by id limit 1000, 10;

但在資料達到百萬級的時候,這樣寫會慢死

**如下:

select * from table order by id limit 1000000, 10;

也許耗費幾十秒

網上很多優化的方法是這樣的

**如下:

select * from table where id >= (select id from table limit 1000000, 1) limit 10;

是的,速度提公升到0.x秒了,看樣子還行了

可是,還不是完美的!

以下這句才是完美的!

**如下:

select * from table where id between 1000000 and 1000010;

比上面那句,還要再快5至10倍

另外,如果需要查詢 id 不是連續的一段,最佳的方法就是先找出 id ,然後用 in 查詢

**如下:

select * from table where id in(10000, 100000, 1000000...);

再分享一點

查詢欄位一較長字串的時候,表設計時要為該字段多加乙個字段,如,儲存**的字段

Mysql大資料量分頁優化

假設有乙個千萬量級的表,取1到10條資料 select from table limit 0,10 select from table limit 1000,10 這兩條語句查詢時間應該在毫秒級完成 select from table limit 3000000,10 你可能沒想到,這條語句執行之間...

mysql大資料量分頁查詢優化

參考文章 mysql的分頁查詢十分簡單,但是當資料量大的時候一般的分頁就吃不消了。傳統分頁查詢 select c1,c2,cn from table limit n,m mysql的limit工作原理就是先讀取前面n條記錄,然後拋棄前n條,讀後面m條想要的,所以n越大,偏移量越大,效能就越差。1 盡...

MySQL大資料量分頁效能優化

mysql大資料量使用limit分頁,隨著頁碼的增大,查詢效率越低下。1.直接用limit start,count分頁語句,也是我程式中用的方法 select from product limit start,count 當起始頁較小時,查詢沒有效能問題,我們分別看下從10,100,1000,100...