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行效率大大提高了樣分頁缺點只能提供上頁、下頁連結形式

相關文章

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.