我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL分页查询的5种方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL分页查询的5种方法

方式1:

select * from table order by id limit m, n;

很简单,该语句的意思就是查询m+n条记录,去掉前m条,返回后n条。无疑该查询能够实现分页,但m越大,查询性能就越低,因为MySQL需要扫描全部m+n条记录。

方式2:

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

该查询同样会返回后n条记录,却无需像方式1扫描前m条记录,但必须在每次查询时拿到上一次查询(上一页)的最大id(或最小id),是比较常用的方式。

当然该查询的问题也在于我们不一定能拿到这个id,比如当前在第3页,需要查询第5页的数据,就不行了。

方式3:

为了避免方式2不能实现的跨页查询,就需要结合方式1。

性能需要,m得尽量小。比如当前在第3页,需要查询第5页,每页10条数据,且当前第3页的最大id为#max_id#,则:

select * from table where id > #max_id# order by id limit 10, 10;

该方式就部分解决了方式2的问题,但如果当前在第2页,要查第1000页,性能仍然较差。

方式4:

select * from table as a inner join (select id from table order by id limit m, n) as b on a.id = b.id order by a.id;

该查询同方式1一样,m的值可能很大,但由于内部的子查询只扫描了id字段,而非全表,所以性能要强于方式1,并且能够解决跨页查询问题。

方式5:

select * from table where id > (select id from table order by id limit m, 1) limit n;

该查询同样是通过子查询扫描字段id,效果同方式4。但方式5的性能会略好于方式4,因为它不需要进行表的关联,而是一个简单的比较,在不知道上一页最大id的情况下,是比较推荐的用法。

来源地址:https://blog.csdn.net/std7879/article/details/125308628

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL分页查询的5种方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mybatis-plus分页查询的3种方法

今天小编给大家分享的是mybatis-plus分页查询的3种方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。一、前期准备表CREATE TABLE `school_student`
2023-08-03

mybatis-plus分页查询三种方法

mybatis-plus分页查询 一、前期准备表1、配置类 二、使用selectPage1、Service2、结果 三、使用2种分页查询的写法1、xml2、Mapper3、第一种写法4、第一种结果5、第二种写法6、第二种结果
2023-08-20

mybatis-plus分页查询三种方法小结

本文主要介绍了mybatis-plus分页查询三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-20

MySQL 查看版本的 5 种方法

MySQL 提供了几种用于查看服务器版本的方法,本文给大家做个简单的介绍。 方法一:登录 MySQL 每次通过 mysql 客户端连接服务器之后,都会显示一个欢迎信息,里面包含了服务器的版本: mysql -urootEnter passw
2023-08-16

PHP+MySQL+LayUI分页查询显示的方法

这篇文章主要介绍PHP+MySQL+LayUI分页查询显示的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html构建前端样式 AJAX异步请求数据使用layui.table数据表格的方法渲染。1.HTML文件<
2023-06-14

提高MySQL深分页查询效率的三种方案

开发经常遇到分页查询的需求,但是当翻页过多的时候,就会产生深分页,导致查询效率急剧下降。有没有什么办法,能解决深分页的问题呢?本文总结了三种优化方案,查询效率直接提升10倍,一起学习一下。开发经常遇到分页查询的需求,但是当翻页过多的时候,
2022-07-04

mysql分页查询优化的方法是什么

MySQL分页查询的优化方法包括:1. 使用索引:在进行分页查询时,使用合适的索引可以大大提高查询性能。可以创建适当的索引,以确保查询中使用的列能够被快速定位和检索。2. 优化查询语句:通过优化查询语句的编写,可以减少查询的时间和资源消耗。
2023-10-08

sqlServer实现分页查询的三种方式

目录一、offset /fetch next关键字二、利用max(主键)三、利用row_number关键字总结sqlServer的分页查询和mysql语句不一样,有三种实现方式。分别是:offset /fetch next、利用max(主键
2023-03-02

mysql有几种查询方法

mysql查询方法包括select(从表中提取数据)、insert(插入新行)、update(修改行值)、delete(删除行)、union(合并查询结果)、union all(合并并保留重复行)、intersect(返回共同存在的行)和e
mysql有几种查询方法
2024-08-01

mysql去重查询的三种方法

文章目录 前言一、插入测试数据二、剔除重复数据方法1.方法一:使用distinct2.方法二:使用group by3.方法三:使用开窗函数 总结 前言 数据库生成环境中经常会遇到表中有重复的数据,或者进行关联过程中产生重复
2023-08-16

编程热搜

目录