關於mysql大資料分頁的一些方法。

來源:互聯網
上載者:User

標籤:mysql

select * from user  limit 0,10;   這種最普通的方法在資料量不大的時候是沒問題的

當資料量大於100W的時候 ,就要 select * from user limit 1000000,10 ;  此時資料庫

要先掃過前面的100W條記錄,再來取10條,所以當資料量越來越大的時候,速度也會越來越慢。


解決方案:

1、從業務上解決,限制最多隻能取前70頁或者前三十頁的資料。例如 百度 、Google搜尋。。

2、使用 select * from user where id > 1000000 limit 10 ; 

       此時使用了索引,所以比較快,不足的時候,使用這種方法必須保證資料的完整性,即前面的資料不能

被刪除過 。

假如你要刪除前面的資料,又還想使用這種方法的話,只能對資料進行邏輯刪除,例如加個is_del欄位

3、 select id from user limit 1000000 ,10 ; 

先查詢出id,使用了索引所以快,然後在從id裡面取得對應的資料。

      可使用                          select id,name from user inner join (select id from user limit 1000000 ,10 ;)    as tem on tmp.id = user.id;



關於mysql大資料分頁的一些方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.