Mysql百万级分页优化技巧
16lz
2022-01-03
普通分页
数据分页在网页中十分多见,分页一般都是limit start,offset,然后根据页码page计算start
select * from user limit 1,20
SELECT * from user limit 100001,20; //time 0.151sexplain SELECT * from user limit 100001,20;
优化分页
使用主键索引来优化数据分页
select * from user where id>(select id from user where id>=100000 limit 1) limit 20; //time 0.003s
explain select * from user where id>(select id from user where id>=100000 limit 1) limit 20;
在数据量比较大的时候,我们尽量去利用索引来优化语句。上面的优化方法如果id不是主键索引,查询效率比第一种还要低点。我们可以先使用explain来分析语句,查看语句的执行顺序和执行性能。
补充:mysql中百万级别分页查询性能优化
前提条件:
1.表的唯一索引
2.百万级数据
SQL语句:
select c.* FROM ( SELECT a.logid FROM tableA a where 1 = 1 <#if phone?exists&& phone!=""> AND a.phone like "%":phone"%" </#if> ORDER BY a.create_time DESC limit :startIndex,:maxCount ) b,tableA c where 1 = 1 AND b.logid = c.logid
1:startIndex:表示查找数据的开始位置
2:maxCount:表示每页显示数据个数
3:a.create_time DESC:降序排列,需要在create_time建立索引
4:limiit放在里面,而不要放在查询的外面,这样效率提升很多
5:logid:唯一索引
更多相关文章
- Python技巧匿名函数、回调函数和高阶函数
- Hello Android(安卓)- android窗体透明的,黑暗度等的设置技巧
- Android(安卓)Layout Tricks #3: Optimize by merging(Android(安
- android分页查询获取系统联系人信息
- Android(安卓)UI技巧(一)——Android中伸缩自如的9patch图片切法,没
- Android小技巧&Android(安卓)Studio快捷键(不定时更新)
- android 编程技巧汇总
- Android(安卓)SDK下载技巧
- Android之BaseAdapter适配器使用技巧