位置: 编程技术 - 正文

详解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算法)

  • 企业成立多久能注销
  • 税务缴税流程
  • 运输费劳务是否可以扣除
  • 上个月的普票开错了怎么办
  • 实收资本属于限定性净资产吗
  • 电子税务局利润表本期金额
  • 红字信息表跨月撤销和申报
  • 过路费可以入账吗
  • 新会计准则中资产减值论文
  • 跨年调整会计科目怎么写
  • 企业资产重组是不定期清查吗
  • 银行 收美金
  • 顾客退货补差价怎么做账?
  • 票面利率大于市场利率是溢价吗
  • 未付款怎么说
  • 应交税金成负数
  • 事业单位收到增值税专用发票抵扣联怎么办
  • 拿到农产品0税率的发票可以抵扣吗
  • 餐费适用税率
  • 非居民纳税人怎么纳税
  • 外购库存商品
  • 办公室出租中介公司
  • 报表中在产品填什么数据
  • 预付款和现金支付的区别
  • 企业用给客户送礼吗
  • 出口退税企业的税负率怎么算?
  • 土地使用税的免征政策
  • windows 10如何清除联网记录
  • 解决的英文
  • php如何通过链接获取源码
  • 多付货款退回的法律依据
  • 承租集体土地如何确权
  • 预收账款调增应纳税所得额
  • 销售商品的会计分录已收到钱
  • php进程太多
  • Waterfalls at the source of the Mundo River, Sierra de Riopar, Albacete, Spain (© Westend61/Getty Images)
  • vue插槽的使用场景
  • thinkphp模型作用
  • 帝国cms怎么加自己的名字
  • 完美破费是什么意思
  • 企业所得税汇算清缴时间
  • 网上更正增值税申报表
  • 如何在个人所得税app上修改扣缴义务人
  • 免征增值税的会计处理 小企业会计准则
  • 支付宝企业账户怎么注销
  • 检测费账务处理
  • 关联方往来款如何处理
  • 运费开什么发票
  • 多交的社保退回多久能到账
  • 培训学校预收学费可退吗
  • 企业取得租车发票
  • 会计里面的管理费用
  • 限售股上市流通是好还是坏
  • 子公司提取盈余公积
  • 企业对疫情
  • 投标保证金退回是不是没中标
  • 外汇账户开立成功后,开户行应于
  • mysql的用户管理与权限管理
  • linux常用命令sed
  • 清除cmos后电脑不启动
  • windows8.1默认壁纸
  • linux系统基础教程
  • win单击变双击
  • window8系统桌面啥样的
  • win8.1中文版下载
  • win8系统如何关闭防火墙
  • win10系统怎么更改开机密码
  • node.js实战
  • jquery easyui有哪些特点
  • python自动截图
  • nodejs 回调
  • 置顶朋友圈所有人能看到吗
  • js实现@功能
  • android回调函数
  • 国税总局北京市税务局
  • 甘肃国家税务局官网
  • cfca证书下载流程
  • 粮食储备库储备管理自评报告
  • 苏州税务局发票查询系统
  • 国家税务局网上浙江电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设