数据查询中大数据量分页

普通的分页,在数据量不太多的情况下还可以,若数据量达到大几十万、或百万以上级别,性能就明显慢了,且随着数据量的增加越来越慢,例如:

普通的分页:

 

SELECT user_name,user_id FROM org_user where dept_id=2 
ORDER BY user_id asc LIMIT 5000000 ,100

limit 这种方式,会遍历前面无关的 5000000 行数据,再向后查询100条,所以当数据量越大就会越慢。

跳过前面5000000 行无关的数据页遍历,可以直接通过索引定位到第5000001,第5000002行,这样操作更快了可以优化为快速定位要访问的数据行,如:

SELECT a.user_name,a.user_id FROM org_user a, 
(select user_id from org_user where dept_id=2 ORDER BY user_id asc LIMIT 5000000 ,100 ) b 
where a.user_id = b.user_id;

这样数据库查询引擎会通过索引跳过无关数据行,然后查询相关数据行了,查询条件必须要命中索引才行。

posted @ 2020-04-13 16:07  LightColors  阅读(287)  评论(0)    收藏  举报