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 

和用自增id每次用最大id作为参数查下10条原理一样

获取分页总数

一般的分页列表会要求返回记录总条数,这时候不是获取列表数据,不必要关联所有的表。当count百万级的数据时一点关联表就会很慢。解决方法是根据参数动态left join表。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/3937.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论