最佳化MySQL 的 limit offset

來源:互聯網
上載者:User

limit 和offset  通常會和order by 一起使用。索引對排序比較有協助,

如果沒有索引就需要大量檔案排序,因此在order by 列一定要添加索引。

如果有:

select * from mytable order by sp_id limit 100000,10

類似的sql語句出現,那麼這個操作的代價非常高,會掃描 100010 行資料。

這個時候可以改成

select * from mytable

inner join (

select pid from mytable  order by sp_id limit 100000,10

)  as lim using (pid);

註:  sp_id  建立了 BTREE 索引

則能夠讓伺服器在索引上面檢查儘可能少的資料,一旦取得了需要的行,就將他們串連在完整的表上面,並取得其餘的列。

修改前的SQL 陳述式執行時間為 2.10 秒,修改後的SQL語句執行時間為  1.75秒。節省了  0.35秒的時間。

聯繫我們

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