索引優化
注意查詢的數據占總數據達到一定量的時候可能導致索引失效。可以用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表。