文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql 中怎么实现limit分页查询

2024-04-02 19:55

关注

本篇文章为大家展示了mysql 中怎么实现limit分页查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。


  优化方法1(让分页操作在索引中进行):
  一般表中经常作为条件查询的列都会建立索引,例如如下查询
  Sql代码
  SELECT msg_id, msg_content FROM message ORDER BY gmt_create desc LIMIT 100, 20;
  可以写成如下方式
  Sql代码
  SELECT msg_id, msg_content FROM message
  INNER JOIN (
  SELECT msg_id FROM message
  ORDER BY gmt_create LIMIT 100, 20
  ) AS page USING(msg_id);
  这样当前查询页的内容就只会在索引中进行,当得到当前页的msg_id再统一通过一个INNER JOIN得到最终要得到的数据详情,避免了对大量数据详情进行操作的消耗。当然JOIN操作也可以通过子查询实现,不过书中介绍5.6之前版本的 mysql相比子查询还是优先使用JOIN。
  优化方法2(显式指定要查询的索引列范围)
  例如方法一中的gmt_create是建立索引的列,而且你也知道要查询的时间范围,这样你就可以通过如下查询语句:
  Sql代码
  SELECT msg_id, msg_content FROM message
  WHERE gmt_create BETWEEN #startTime# AND #endTime#
  ORDER BY gmt_create desc
  这样数据库通过一个范围查询就可以得到想要的数据。
  优化方法3(OFFSET作为查询条件显式指定)
  例子还是如上,我们可以在查询参数中显式指定一个查询时间,叫做lastVisitTime吧。我们查询第一页可以用如下语句:
  Sql代码
  SELECT msg_id, msg_content FROM message
  ORDER BY gmt_create desc
  LIMIT 20
  我们把读出来的数据的最后一条数据的gmt_create字段记录在lastVisitTime字段中,那么后边页的查询就可以用如下语句实现:
  Sql代码
  SELECT msg_id, msg_content FROM message
  WHERE gmt_create < #lastVisitTime#
  ORDER BY gmt_create desc
  LIMIT 20;
  这种查询方式,无论你查询多少页,分页都不会是影响效率的因素。

上述内容就是mysql 中怎么实现limit分页查询,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯