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

mysql深分页

第一种:主键自增id情况:

未改:

   select * from  wx_product_category_info where category_name_cn=#{categoryNameCn} and category_type=#{categoryType} order by id asclimit #{pageNum}, #{pageSize};

在普通的limit条件下,如果是直接limit条件查询,他的查询顺序 是通过二级索引查到主键索引,然后在通过主键索引 查询所有的列,会涉及到数据库回表操作,这种情况下在深分页的时候 查询效率大大降低,可以通过 排序,排除解决

改后: 通过前端传递,把当前页最小的id计算带过来,进行排除就可以减少回表并通过主键索引来查询进行提高效率
在这里插入图片描述

  select * from  wx_product_category_info where category_name_cn=#{categoryNameCn}and category_type=#{categoryType} and id>#{minId}order by id asclimit #{pageNum}, #{pageSize};

第二种:主键是UUID:

这种情况下,就不能使用主键排序的方式来做了,因为他是无序的。
但是可以使用伪排序进行操作,通过uuid——Id 建立一个关系表建立伪排序关系,从而可以有序排序

给 uuid 一个伪排序
1, abcd-abcd-abcd
2, bcde-bcde-bcde
然后利用 id 继续上面的操作

第三种:主键是UUID 且不想关联伪关系的情况下

可以引用:Elastic Search搜索引擎(基于倒排索引),实际上类似于淘宝这样的电商基本上都是把所有商品放进ES搜索引擎里的(那么海量的数据,放进MySQL是不可能的,放进Redis也不现实)。但即使用了ES搜索引擎,也还是有可能发生深度分页的问题的,这时怎么办呢?答案是通过游标scroll。关于此点这里不做深入。

http://www.lryc.cn/news/67189.html

相关文章:

  • 【JavaScript由浅入深】常用的正则表达式
  • QT常用类型字节数组QByteArray及其基本使用
  • APP 兼容性测试是什么?8年测试老鸟告诉你
  • Golang每日一练(leetDay0061) 表列序号、阶乘后的零
  • 深度解析C++异常处理机制:最佳实践、性能分析和挑战
  • 【Spring事务】Spring事务事件控制,解决业务异步操作
  • Java 中的注释有哪些?
  • yolov4
  • 金融学第二版笔记第一章1.1
  • [架构之路-193]-《软考-系统分析师》-2-应用数学 - 项目周期与关键路径(PERT图、甘特图、单代号网络图、双代号网络图)
  • 滋灌中小企业,分销伙伴和华为来做“送水人”
  • 面试华为测试岗,收到offer后我却毫不犹豫拒绝了....
  • 深入了解浮点型变量输入与输出
  • Vector - CAPL - CANoe硬件配置函数 - 03
  • 单开网页应用利器 - BroadcastChannel
  • OpenCv更改颜色空间以及图像阈值
  • (邱维声)高等代数课程笔记:基,维数与坐标
  • Spring Security + Jwt 集成实现登录
  • yolov5 用自己的数据集进行训练
  • 1951-2023最新中国基础地理信息,包括水系、行政区、DEM高程、气象站经纬位置、土地利用,这些数据获取方法介绍
  • CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本
  • 实验二十、压控电压源二阶 LPF 幅频特性的研究
  • 类和对象【C++】【中篇】
  • 2.SpringBoot运维实用篇
  • 【c++】浅讲引用
  • CSS布局基础(文字[行内<块>]与行内[块]垂直对齐方式 文字溢出显示省略号)
  • AI自动写文章_免费在线原创文章生成器
  • Java阶段二Day15
  • 从月薪3000到月薪20000,自动化测试应该这样学...
  • Python魔法方法 单例模式