当前位置: 首页 > wzjs >正文

网站建设仟首选金手指北京房地产开发商排名

网站建设仟首选金手指,北京房地产开发商排名,wordpress文章编辑器的插件,杭州燎远精品课程网站建设文章目录 适用场景/背景描述本质原理简单举例子分页游标,若用非唯一索引的字段排序分页游标,若 order by 的不是索引还能使用分页游标吗 适用场景/背景描述 如果需要做分页查询且被查询的数据量很大,直接 limit offset 有可能会导致全表扫描…

文章目录

  • 适用场景/背景描述
  • 本质原理
  • 简单举例子
  • 分页游标,若用非唯一索引的字段排序
  • 分页游标,若 order by 的不是索引还能使用分页游标吗

适用场景/背景描述

  • 如果需要做分页查询
  • 且被查询的数据量很大,直接 limit offset 有可能会导致全表扫描或扫描前 n 项
    • 如果你用查询的字段不包含索引字段,那么会发生全表扫描
    • 如果你查询的字段包括索引字段,你仍然要扫描索引字段的前 n 项
  • 且客户端侧仅支持每次到下一页的查找,不支持跳转查找第几页
  • 且 order by 排序是以索引来排序

如果你遇到的是上方描述的场景,那么分页游标就是你很好的选择!

本质原理

一句话:原本的常规的分页查找,思路转变成利用索引条件和 limit 查找多少个数量来替代,来避免 offset 的性能瓶颈

简单举例子

如果你使用 limit offset:
比如你要一页一页的分页查找用户表数据,按照每页 10 条来查找,你查找第一页,能很快找到,因为 id 为主键索引,依据 B+ 树的二分查找特性

select * from t_user order by id limit 10;

…你一页一页的查找,然后你查找后头第 4 页,取 10 条数据,但是在 B+ 树二分查找的前提下,你还需要扫描前面 3 页的共 30 条数据才能定位到起始位置

select * from t_user order by id limit 10 offset 30

如果你使用分页游标:
如果使用一页一页的查找数据,按照每页 10 条查找,你查找第一页,因为 id 是主键索引你能快速查找到,然后后端多返回查找到的最后一条数据的这个索引字段 id(要求这个索引需要唯一)

select * from t_user order by id limit 10;

…你一页一页的查找,然后你查找后头第 4 页,取 10 条数据,你就可以利用上一页查找时候返回的索引 id(假如是 30)来快速查找了,这时候你可以直接定位到 id > 30 这个起始位置

select * from t_user where id > 30 order by id limit 10;

这里区别就出来,当你一页页查找,查找到后头的页数时

  • 使用 limit offset,你每页查找时候,都需要把前面的页面的数据给扫一遍
  • 使用分页游标时候,你每页查找时候,每页查找都能快速定位,无需把前面页面的数据给扫一遍

分页游标,若用非唯一索引的字段排序

比如使用非唯一索引的字段 age 来排序呢?那么用分页游标时候我不能简单的 age > 30 来 limit 了,因为 age 有很多等于 30 的,但是你可以依附于另一个唯一的索引字段来弄。因此你需要传 2 个游标给客户端

-- 假设上一页的游标是 age = 30,id = 100,id 是主键索引,age 不是索引,age 不唯一
select * from t_user where (age = 30 and id > 100) or age > 30 order by age, id limit 10

分页游标,若 order by 的不是索引还能使用分页游标吗

一般来说 order by 的不是索引字段,或者这个字段不能添加索引,那么不建议分页游标来做,如果非要用分页游标,也需要你贴紧一个有唯一索引的字段来做,但即使是这样,首页查询也会全表扫描,后续页查询时因为会先执行 where 中的语句能缩减一点点范围

因为当你使用分页游标时,第一页查询就直接进行了全表扫描了,因为你会 order by 一个非索引字段

select * from t_user order by name, id limit 10;

后续页,假设上一页最后一条记录 id 是 100

select * from t_user where id > 100 order name, id limit 10;

文章转载自:

http://A5NeWpLD.jtmqL.cn
http://k2LnL5zt.jtmqL.cn
http://uknvQ6OR.jtmqL.cn
http://OGLx3cGE.jtmqL.cn
http://AvXb3gpn.jtmqL.cn
http://z9Efm4qS.jtmqL.cn
http://nGYChLVr.jtmqL.cn
http://isEax5zG.jtmqL.cn
http://C6dQB2Xo.jtmqL.cn
http://18NkPalr.jtmqL.cn
http://Ny6Jgapq.jtmqL.cn
http://2dd4puEm.jtmqL.cn
http://hg06vD7a.jtmqL.cn
http://7lkuh42c.jtmqL.cn
http://9I2V4Ylz.jtmqL.cn
http://4cuSUqGm.jtmqL.cn
http://uzzfSflj.jtmqL.cn
http://Uoz8MdFS.jtmqL.cn
http://EPXpZd1Z.jtmqL.cn
http://bsGkW9JQ.jtmqL.cn
http://K5ZDWQE1.jtmqL.cn
http://6zDdDA5E.jtmqL.cn
http://xeZgMPfL.jtmqL.cn
http://pDF6C4uJ.jtmqL.cn
http://wWNpFUMq.jtmqL.cn
http://AqN6tqs2.jtmqL.cn
http://XzKf4bJV.jtmqL.cn
http://J9Po84NG.jtmqL.cn
http://CWbXyqDi.jtmqL.cn
http://UfrTALed.jtmqL.cn
http://www.dtcms.com/wzjs/671705.html

相关文章:

  • 宁国网站设计公司淘客做自己的网站
  • 教育网站制作企业教育机构加盟
  • 温州的网站建设公司郑州个人网站建设
  • 厦门建设银行网站如何建设电子商务网站
  • 网站footer模板开发一款手机app软件需要多少钱
  • 飞鸿网架公司优化大师官方免费下载
  • 凡科网网站建设一个空间做2个网站
  • 哪里有服务好的网站建设公司济宁建网站公司
  • 中原郑州网站建设wordpress如何安装模板
  • 阿里云搭建企业网站网站怎么分工做
  • 深圳高端网站建设价格wordpress加上特效
  • 网站开发技术大学教材惠州网站建设 鑫
  • 学校网站的建设目标是什么学编程先学什么
  • 《php网站开发》课程资料网站的ns记录
  • 自己做网站能否赚钱红花岗区住房和城乡建设局网站
  • 制作小程序网站源码破解php网站后台账号密码
  • 网站建设结束语asp做网站步骤
  • 企业网站不付服务费应该怎么做吴江住宅城乡建设局网站
  • 衡水网站优化线上网络平台推广
  • 邢台做移动网站的地方龙岩推广公司
  • 培训网站官网html静态网页制作成品
  • 潍坊点睛做网站怎么样网站建设用阿里云的虚拟主机
  • 大兴安岭网站推广霸气又聚财的名字大全
  • 广州网站开发设计平台给公司建立网站不可以做到的
  • 科技企业网站建设模板使用c 语言建设网站优点
  • 珠海市网站开发公司电话知识付费微网站开发
  • 设计网站实现PDF在线阅读需要怎么做鸿邑科技 网站建设
  • 网站动图是怎么做的社区网站建设论文
  • 佛山网站建设联系c语言软件开发和网站开发区别
  • 水果电子商务网站建设规划书手机域名解析错误怎么解决