比如我的表中有100w条数据,然后页面要展示,那么一定要分页查询,每页10条,当前几百条的时候,都没有问题,正常翻页,但是,当你翻到最后一页,开始一页一页往前翻,你会感受到,非常的卡!!!!! 比如 第30000页 50000页
正常的mysql 分页 select * from 表 limit (页码-1)条数,条数 没有问题
但是当数据量很大的时候,比如 select * from 表 limit 50000,10,或者select * from 表 limit 500000,10 运行下这样的sql,你会发现非常的慢,那么针对此情况可以用如下方法来处理
select * from a ,(
select id form a order by id limit 50000,10
) b
where b.id = a.id
这样比较快的原因是由于 b 表用到了 id主键,有主键索引那么,无论如何查询,效率都会大大提高,然后跟a 表关联,依然是主键索引关联,所以此种写法,速度非常快
反观之前的普通写法:
select * from 表 limit 50000,10 此种查询方式查询的是所有用到的字段,不建立组合索引,就不会用到索引,那么他只能扫描定位到第5w条数据,然后抛弃,再取十条数据,所以很慢
====================================================================================
然后大数据下多表关联查询的时候,尽量建立有效索引,这样可以加快查询