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

mysql的分页场景下,页数越大查询速度越慢的解决方法

一 问题描述

select * from table limit 0,10扫描满足条件的10行,返回10行,
但当limit 99989,10的时候数据读取就很慢,limit 99989,10的意思扫描满足条件的99999行,扔掉前面的99989行,返回最后的10行,这样速度就会很慢了。

二 解决方案

利用表的索引覆盖来加速分页查询,使用索引查询的sql语句中如果select的字段只包含索引列(覆盖索引),那么这种情况查询速度就会很快。
举个例子:
当id字段是主键,在部分数据库引擎中会创建主键索引。

	select id from table limit 99989,10;

会发现查询结果很快。
通过这个查询中返回的id,再次查询对应id(因为又主键索引也会很快).

	select * from table where id >= (select id from product limit 99989,1) limit 10; select * from table where id in (select id from product limit 99989,10); select * from table t join (select id from table limit 99989,10) t1 on t.ID=t1.id;

原文地址 感谢大佬的分享 @小丛的知识窝

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/235757.html

相关文章:

  • 3D Web轻量化引擎HOOPS Communicator的定制化能力全面解析
  • java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟
  • 11.RV1126-ROCKX项目
  • MySQL 索引优化
  • Linux驱动:再看静态映射和动态映射
  • 数学:数的概念是如何发展的?
  • Python 训练营打卡 Day 45
  • 高等数学》(同济大学·第7版)第二章第一节“导数的概念“
  • C文件操作2
  • error: subprocess-exited-with-error【已解决】
  • SCAU数值计算OJ
  • 2.1 Windows编译环境介绍
  • 《UE5_C++多人TPS完整教程》学习笔记37 ——《P38 变量复制(Variable Replication)》
  • WinCC学习系列-变量模拟器(WinCC TAG Simulator )
  • MajicTryOn(基于wanvideo的虚拟试穿项目)
  • @Minikube 部署与配置
  • 使用 Python 构建并调用 ComfyUI 图像生成 API:完整实战指南
  • 【大厂机试题解法笔记】观看文艺演出问题
  • 使用扩散模型解决Talking Head生成中的头像抖动问题
  • 毫米波雷达基础理论(3D+4D)
  • 20250606-C#知识:匿名函数、Lambda表达式与闭包
  • C#中datagridview单元格value为{}大括号
  • Compose基本介绍
  • 8.1_排序的基本概念
  • 【C++】24. 哈希表的实现
  • Day46
  • 消息队列高级特性与原理:解锁分布式系统的底层逻辑
  • 【信息系统项目管理师-论文真题】2025上半年(第一批)论文详解(包括解题思路和写作要点)
  • 【大模型LLM学习】Flash-Attention的学习记录
  • PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式