MySQL分页查询的原理

Keys: LIMIT OFFSET
请注意分页是方便客户端浏览,并不是优化查询的方式。查询引擎还是会查询满足条件的所有数据,再对结果集进行分页。

(1). mysql引擎提供了limit和offse函数,通过控制查询开始的行和查询的行数来实现分页查询。
LIMIT: 查询返回的总行数
OFFSET: 指定查询跳过的行数,即从哪一行开始查询

(2) 场景: 分页查询,一页10行。

 1. 第一页查询: 从第一行开始,需要跳过count_row = 0
    select * from <table_name>  LIMIT  10 OFFSET 0
  
   2. 第二页查询:从第11行开始,需要跳过count_row = 10
   select * from <table_name>  LIMIT  10 OFFSET 10

  3. 第三页查询: 从第21行开始,需要跳过count_row = 20
    select * from <table_name>  LIMIT  10 OFFSET 20

(3)是否可以不使用offset?
直接使用limit函数即可,上述的效果一样。

     SELECT * FROM table_name
     LIMIT offset, count;

(4) 分页查询的执行流程
mysql先筛选出所有满足条件的数据,再进行分页。需要注意的时候分页查询不能优化查询,相反与无分页查询相比还会对DB的压力更大。

查询第三页的数据,每页展示10行
select name,age
from user
where sex = “男”
order by age
limit 10 offset 20;
执行顺序: 先执行where 查询所有满足条件的所有数据 - >升序排列 - >对结果集分页,跳过前20条,查询出近10 row数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值