分页查询慢的优化方式

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

大家好呀我是柚子。这篇文章的起因呢是因为项目中有一个分页查询比较慢的sql需要优化。

文章目录


前言

分页查询也是我们项目中经常使用的查询方式那么如何优化呢


提示以下是本篇文章正文内容下面案例可供参考

一、先定位偏移位置的 id然后往后查询适于 id 递增场景

select * from order where type=1 limit 100000,1;

第1条语句3674ms

select id from order where type=1 limit 100000,1;

第2条语句1315ms

select * from order where type=1 and
id>=(select id from order where type=8 limit 100000,1)
limit 100;

第3条语句1327ms

select * from orders where type=1 limit 100000,100;

第4条语句3710ms

从上面也是可以看出
第1条直接select * 的话不走索引会比较慢
第2条直接查询id就走了索引相对比较快
第3条虽然select *但是先定位偏移位置的id然后向后查询也是比较快的

二、可以使用 id 限定优化

假设数据表的id是连续递增则根据查询的页数和查询的记录数可以算出查询的id的范围可使用 id between and
sql如下示例

select *
from order
where type = 1
  and id between 1000000 and 1000100
limit 100;

总结

那么以上就是分页查询的优化方式了小伙伴们可以采纳哦


╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话欢迎点赞评论呀
╰◟◞ ͜ ◟◞╯

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6