分页查询(limit)

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

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

  • 第一个参数

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

  • 第二个参数

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

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

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

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

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

limit分页查询的性能分析

  • 基本分页方式
select ··· from ··· where ··· order by ··· limit ···

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

select * from articles where category_id = 123 order by id limit 1000000,10

修改为

select * from articles
where id>=(select id from articles where category_id = 123 order by id limit 1000000,1)
limit 10

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


img_d21299c7f11bb8ff30de2fa6b1f6c65c.png
image.png

img_ab1f01bdb6ff9d41743e1443104302a5.png
image.png
相关文章
MyBatis-Plus - 分页查询 selectPage 返回 total 为 0 解决方案
MyBatis-Plus - 分页查询 selectPage 返回 total 为 0 解决方案
2742 0
|
2月前
|
SQL Oracle 关系型数据库
分页
分页
28 1
|
5月前
|
SQL Java 关系型数据库
3.分页
本文介绍了MyBatis中的分页技术,包括四种主要方法:自带`RowBounds`分页、第三方插件PageHelper、SQL分页以及数组分页。`RowBounds`通过内存处理所有查询结果实现分页;PageHelper插件能智能识别数据库类型并自动添加相应的分页关键字;SQL分页直接利用SQL语句中的`LIMIT`或类似关键字;数组分页则是查询所有数据后使用`subList`进行切片。此外,还提到了自定义拦截器实现分页的方式。物理分页虽在小数据量场景下效率较低,但在大数据量时更为适用,优于逻辑分页。
|
8月前
|
机器学习/深度学习 存储 SQL
别再用offset和limit分页了
别再用offset和limit分页了
49 0
|
8月前
分页实现
分页实现
40 0
|
小程序 API 数据库
小程序中的分页查询
小程序中的分页查询
小程序中的分页查询
|
数据采集 算法 前端开发
查询分页不只有 limit,这四种分页方法值得掌握
查询分页不只有 limit,这四种分页方法值得掌握
282 0
查询分页不只有 limit,这四种分页方法值得掌握
|
SQL Java 数据库连接
分页的实现
分页的实现
|
数据库
分页limit和排序order by
分页limit和排序order by