超大表数据 开发中常见问题与最佳实践 sql 分页

本文介绍了MySQL数据库中分页查询的几种常见写法及其存在的问题,并提供了三种优化方案,包括基于最大ID递增查询、使用内连接进行分页以及带有WHERE条件的分页查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://developer.aliyun.com/learning/trainingcamp/mysql/1?spm=a2c6h.21072608.J_3548279640.1.707f59b5EHt8d7

背景:

 扫描大量无效数据后,返回请求数据 分页越来越慢。

 

 

 

开发中常见问题与最佳实践

SQL 执行顺序:

1.FROM, including JOINs

2. WHERE

3. GROUP BY

4. HAVING

5. WINDOW functions

6. SELECT

7. DISTINCT

8. UNION

9. ORDER BY

10 .LIMIT and OFFSET

 

 

开发中常见问题与最佳实践分页问题传统写法select * from sbtest1 order by id limit M,N问题点:扫描大量无效数据后,返回请求数据

 

 

 

 

 

 

 

 

开发中常见问题与最佳实践分页问题

➢select * from sbtest1 where id > #max_id# order by id limit n;

     •适用顺序翻页的场景,每次记录上一页#max_id#带入下一次查询中

➢select * from sbtest1 as ainner join (select id from sbtest1 order by id limit m, n) as b on a.id= b.idorder by a.id;

      •适用只按照id进行分页,无where条件

➢select * from sbtest1 as a inner join (select id from sbtest1where col=xxxx  order by id limit m, n) as bon a.id= b.idorder by a.id;

     •适用于带where条件,同时按照id顺序分页•此时,需要在where条件上创建二级索引

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值