LIMIT M,N分页性能优化方案
生活随笔
收集整理的這篇文章主要介紹了
LIMIT M,N分页性能优化方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用子查詢優化
說明:
MySQL 并不是跳過 offset 行,而是取 offset+N 行,然后返回放棄前 offset 行,返回 N 行,那當 offset 特別大的時候,此時使用limit m,n效率就非常的低下。想要提升性能要么控制返回的總頁數,要么對超過特定閾值的頁數進行 SQL 改寫。
正例:
先快速定位需要獲取的 id 段,然后再關聯:
SELECT a.* FROM 表_1 a, (select id from 表_1 where 條件 LIMIT 100000,20 ) b where a.id=b.idselect id from 表_1 where 條件 LIMIT 100000,20可以利用覆蓋索引快速查詢出id,然后在根據id回表查詢20個數據的具體值,這樣就能大量的減少數據庫的IO,從而大幅提升性能。
總結
以上是生活随笔為你收集整理的LIMIT M,N分页性能优化方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目面试题
- 下一篇: akshare 布林通道策略