分页优化技术
数据分页网页中是很常见的,和分页一般限制开始,偏移,然后开始基于网页的页面数
SELECT * FROM用户限制中
分页效率将降低数十万倍,MySQL需要从一开始计算,这大大影响效率。
SELECT * FROM用户限制100001,20; / /时间0.151s
说明SELECT * FROM用户限制100001,20;
我们可以用解释来分析下面的语句,不使用任何索引。MySQL执行行数为16W +,所以我们可以使用索引来实现分页。
优化分页
利用主键索引优化数据分页
从用户id中选择* >(从ID中选择id = 100000限制1)的用户20;
使用解释的分析说明,在MySQL的行数扫描8w +和时间大大缩短。
从用户id(>从ID > = 100000)中选择id)解释选择* 20;
总结
当数据量较大时,我们尝试使用索引来优化语句,如果id不是主键索引,那么查询效率就比第一个低,我们可以先用解释来分析语句,查看语句的执行顺序和性能表现。
补充:MySQL中一百万层分页查询的性能优化
先决条件:
1的唯一索引。桌子
200万级数据
SQL语句:
选择
C. *
从
(
选择
a.logid
从
中的一个
1=1
和a.phone像%:手机%
顺序
a.create_time desc
限制:startIndex:maxcount
B,C)中
1 = 1 = c.logid b.logid
其中:
1:指数:表示查找数据的开始位置
2:maxcount:表示每页数据的数量
3:a.create_time属性:降序索引需要在create_time设置
4:限制放在里面,而不是放在查询,所以更有效。
5:逻辑:唯一索引