mysql最快分頁方法,mysql分頁

來源:互聯網
上載者:User

mysql最快分頁方法,mysql分頁

眾所周知,mysql分頁是這樣寫的:

select * from 'yourtable' limit start,rows

現在我資料庫一張表裡面有9969W條資料,表名叫tweet_data

select count(*) from tweet_data

執行第一條sql語句,就查6000000條開始的10條,看查詢時間



60s這得有多慢!

解決方案一、

有人立馬想到了利用索引來提高效率,那麼我們就利用主鍵吧,所以,便有了下面這種sql

select *  from tweet_data where id >=(select id from tweet_data limit 60000000,1)limit 10


看看效果


果然沒有多大提升,但是如果資料量在百萬層級的話,效率還是可以多番幾倍,但是!這明顯沒有達到我們的要求

解決方案二、

那麼就有了下面這種sql語句

select * from tweet_data where id_auto_increase between 60000000 and 60000010





有圖為證!


在這裡我們只對一張表上的資料進行了操作,而且資料量在1億條左右,但是如果我們的資料量更大呢?

那麼就要涉及到更多知識了!小弟拙見!








MYSQL的最快入門方法。找些基礎書先看看
mysql如何?高效分頁先看下分頁基本原理(我拿CSDN百萬級資料庫來測試):SELECT * FROM `csdn` ORDER BY id DESC LIMIT 100000,2000;耗時: 0.813ms分析:對上面mysql語句說明:limit 100000,2000意思掃描滿足條件102000行扔掉前面100000行返回2000行問題裡limit 100000,20000需要掃描120000行高並發應用裡每次查詢需要掃描超過100000行效能肯定大打折扣《efficient pagination using mysql》提出clue方式利用clue方法給翻頁提供些線索比還SELECT * FROM `csdn` order by id desc按id降序分頁每頁2000條當前第50頁當前頁條目id大102000小100000我們只提供上頁、下頁樣跳轉(提供第N頁跳轉)處理上頁時候SQL語句:SELECT * FROM `csdn` WHERE id<=102000 ORDER BY id DESC LIMIT 2000; #上頁耗時:0.015ms處理下頁時候SQL語句:耗時:0.015ms樣管翻多少頁每次查詢只掃描20行效率大大提高了樣分頁缺點只能提供上頁、下頁連結形式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.