sql分頁優化


索引優化

注意查詢的數據占總數據達到一定量的時候可能導致索引失效。可以用limit或者指定列縮小數據區域可以解決。

以時間orderby排序的limit分頁優化

前提用order by分頁

limit分頁在兩三萬左右時可以使用,超過十萬條記錄時要先查詢出前n-1頁的時間最大值max(date),以這個為開始時間。這里變動的參數只有下面的300000,這里為查詢第30001頁的數據。

300000為pagerow*(page-1)得來。

select * FROM
    tbl where sysDate >(select max(sysDate) from (select sysDate from tbl where sysDate>='2018-03-01 00:00:00' order by sysdate asc limit 0,300000) aa)
    AND sysDate <=  '2019-08-27 23:59:59' order by sysDate limit 0,10 

獲取分頁總數

一般的分頁列表會要求返回記錄總條數,這時候不是獲取列表數據,不必要關聯所有的表。當count百萬級的數據時一點關聯表就會很慢。解決方法是根據參數動態left join表。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM