LIMIT M,N分页性能优化方案
生活随笔
收集整理的這篇文章主要介紹了
LIMIT M,N分页性能优化方案
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
利用子查詢優(yōu)化
說明:
MySQL 并不是跳過 offset 行,而是取 offset+N 行,然后返回放棄前 offset 行,返回 N 行,那當(dāng) offset 特別大的時(shí)候,此時(shí)使用limit m,n效率就非常的低下。想要提升性能要么控制返回的總頁數(shù),要么對(duì)超過特定閾值的頁數(shù)進(jìn)行 SQL 改寫。
正例:
先快速定位需要獲取的 id 段,然后再關(guān)聯(lián):
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,然后在根據(jù)id回表查詢20個(gè)數(shù)據(jù)的具體值,這樣就能大量的減少數(shù)據(jù)庫的IO,從而大幅提升性能。
總結(jié)
以上是生活随笔為你收集整理的LIMIT M,N分页性能优化方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目面试题
- 下一篇: akshare 布林通道策略