位置: 编程技术 - 正文

详解MySQL的limit用法和分页查询语句的性能分析

编辑:rootadmin

推荐整理分享详解MySQL的limit用法和分页查询语句的性能分析,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

limit用法

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

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

如果只给定一个参数,它表示返回最大的记录行数目:

换句话说,LIMIT n 等价于 LIMIT 0,n。

Mysql的分页查询语句的性能分析

MySql分页sql语句,如果和MSSQL的TOP语法相比,那么MySQL的LIMIT语法要显得优雅了许多。使用它来分页是再自然不过的事情了。

详解MySQL的limit用法和分页查询语句的性能分析

最基本的分页方式:

在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引:举例来说,如果实际SQL类似下面语句,那么在category_id, id两列上建立复合索引比较好:

子查询的分页方式:

随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:

一言以蔽之,就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。

此时,我们可以通过子查询的方式来提高分页效率,大致如下:

JOIN分页方式

经过我的测试,join分页和子查询分页的效率基本在一个等级上,消耗的时间也基本一致。 explain SQL语句:

为什么会这样呢?因为子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。

实际可以利用类似策略模式的方式去处理分页,比如判断如果是一百页以内,就使用最基本的分页方式,大于一百页,则使用子查询的分页方式。

标签: 详解MySQL的limit用法和分页查询语句的性能分析

本文链接地址:https://www.jiuchutong.com/biancheng/349909.html 转载请保留说明!

上一篇:MAC下Mysql5.7.10版本修改root密码的方法(mysql mac下载)

下一篇:超简单的qps统计方法(推荐)(qpso算法)

  • 稽查局和税务局的关系
  • 小微企业所得税税率
  • 兼职人员工资需要申报个税吗
  • 汇算清缴从业人员平均值
  • 购买方怎么写分录
  • 盘盈存货会计处理会计分录
  • 税务年检流程
  • 超市热卖食品
  • 注册公司买车划算吗
  • 税务需要申报吗
  • 外包业务账务处理
  • 收到投资款需要什么原始凭证
  • 账本印花税每年交吗,要交几本
  • 软件企业增值税即征即退会计处理
  • 高新技术企业必须要有研发费用吗
  • 减半征收城建税文件
  • 结存材料实际成本计算公式例题
  • 企业零申报用错法人情况说明
  • 企业接到银行收账通知
  • 怎么安装win7系统u盘
  • php中??
  • sethook.exe - sethook进程是什么文件 有何作用
  • 苹果macOSBigSur是什么型号
  • gnaupdaemon.exe是什么
  • 嘴型融合 wav2lip 升级版
  • js的发展历史
  • 向股东借款支付利息划算还是做工资划算
  • php zend
  • 海浪冲击着海岸
  • 小型微利企业所得税优惠政策2023
  • 非正常损失的原材料进项税额可以抵扣吗
  • 施工单位代建收费合法吗
  • 图文详解汽车坐垫安装方法
  • 跨季度的发票可以冲红吗
  • 固定资产直接记入费用科目
  • 残保金少申报了怎么办
  • 非盈利组织接受劳务捐赠怎么入账
  • 发票审核中是什么意思
  • 公司担保无效的后果
  • 税控盘反写是不是说明税都已经成功申报了
  • 无法支付的应付账款摘要怎么写
  • 勘察设计费是否可以进入在建工程
  • 企业成本核算项目以及成本核算流程
  • 增值税普通发票查询
  • 收到其他公司往来款怎么做账
  • 差旅费用包含哪些
  • 临时账户过期了怎么办
  • 担保公司预计负债
  • 预付房租收到发票怎么写摘要
  • 销售货物没开票是不是不交税
  • 五险一金的正确说法
  • 研发费用人工费用包括
  • 关税用什么会计科目
  • 微软桌面 ios
  • winxp设置在哪
  • xp系统怎么弄成win7
  • ubuntu怎么禁用nouveau
  • centos删除virbr0
  • win8系统如何关机
  • win8怎么禁用更新
  • win7桌面没有了怎么办
  • 如何刷硬盘使用时间
  • jsonarray fromobject
  • cocos2dx-3.1.1 labelttf与label
  • linux中的shell编程
  • AndroidAnnotations 自定义控件 ant编译 找不到类
  • list嵌套list采用什么结构
  • js调用url接口
  • python 多线程
  • jquery.form.min.js
  • html5三级菜单
  • javascript的介绍
  • 福建省地方税务局杨静
  • 税务开票系统对账流程
  • 怎样理解句子我还没弄清楚是怎么回事
  • 汽车车船税怎么交
  • 2023年印花税税目表
  • 药品定价的三种形式
  • 税务申报如何网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设