分页查询(limit)

简介: limit(可以接受一个参数或者两个参数)第一个参数指定第一个返回记录行的偏移量(初始偏移量是0不是1)第二个参数指定返回记录行的最大数目例://检索记录行6-15select * from table limit 5...

limit(可以接受一个参数或者两个参数)

  • 第一个参数

指定第一个返回记录行的偏移量(初始偏移量是0不是1)

  • 第二个参数

指定返回记录行的最大数目

  • 例:
//检索记录行6-15
select * from table limit 5,10
AI 代码解读

为了检索从某一个偏移量到记录集的结束所有的记录行,可以制定最后一个参数为-1

//检索从96条记录到最后一条记录
select * from table limit 95,-1
AI 代码解读

如果只给定一个参数,表示返回最大的记录行个数,即(limit n == limit 0,n)

limit分页查询的性能分析

  • 基本分页方式
select ··· from ··· where ··· order by ··· limit ···
AI 代码解读

在中小型数据量够用,数据量超级大时建议使用子查询

select * from articles where category_id = 123 order by id limit 1000000,10
AI 代码解读

修改为

select * from articles
where id>=(select id from articles where category_id = 123 order by id limit 1000000,1)
limit 10
AI 代码解读

优化思想:避免数据量大时扫描过多的记录


img_d21299c7f11bb8ff30de2fa6b1f6c65c.png
image.png

img_ab1f01bdb6ff9d41743e1443104302a5.png
image.png
目录
打赏
0
0
0
0
1
分享
相关文章
3.分页
本文介绍了MyBatis中的分页技术,包括四种主要方法:自带`RowBounds`分页、第三方插件PageHelper、SQL分页以及数组分页。`RowBounds`通过内存处理所有查询结果实现分页;PageHelper插件能智能识别数据库类型并自动添加相应的分页关键字;SQL分页直接利用SQL语句中的`LIMIT`或类似关键字;数组分页则是查询所有数据后使用`subList`进行切片。此外,还提到了自定义拦截器实现分页的方式。物理分页虽在小数据量场景下效率较低,但在大数据量时更为适用,优于逻辑分页。
|
10月前
分页实现
分页实现
55 0
如何优雅地实现分页查询
分页功能是很常见的功能,特别是当数据量越来越大的时候,分页查询是必不可少的。实现分页功能有很多种方式,如果使用的ORM框架是mybatis的话,有开源的分页插件可以使用,如:Mybatis-PageHelper。
1534 0