优化带排序的分页查询

news2025/9/10 17:37:22

优化带排序的分页查询
浅分页:
select user_no,user_name,socre from student order by score desc limit 5,20
深分页:
select user_no,user_name,socre from student order by score desc limit 80000,20
因为偏移量深分页更大,所以深分页执行时间更长

优化1:alter table student add index_socre(score);
浅分页走了索引,深分页没有走索引:
select user_no,user_name,socre from student force index(index_socre) order by score desc limit 5,20
走强制索引的话执行时间,比不走还慢。
因为sql除了查询score之外还查询了user_no,user_name,需要回表查询
回表需要时间,排序也需要时间,mysql 帮我们做了优化,两者取最优。

优化2:添加联合索引,就不用回表了  alter table student add index_socre_no_name(user_no,user_name,score);
深分页走了联合索引,extra:using index 走了覆盖索引
缺点:增加了查询字段就不行了,索引就失效了

优化3:删除联合索引,只留下 score的索引
Select user_no,user_name,socre from student a join (select id from student order by socre desc limit 80000,20
) b on a.id = b.id
缺点:子查询的id 集合比较多的话(这里是20个),不建议这样使用

优化4:只留下 score的索引,分数一样的情况下,id递增


Select user_no,user_name,socre from student where id<上一次最大的 and score < 上一次最大的 order by score desc limit 80000,20 

索引结构:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python改定位:从脚本语言到全栈语言的转变

Python 改定位&#xff1a;从脚本语言到全栈语言的转变 Python 作为一门面向对象的高级编程语言&#xff0c;一直以来被认为是一种脚本语言。但随着时间的推移&#xff0c;Python 逐渐从科学计算和自动化脚本领域出发&#xff0c;逐步地向全栈领域发展。 Python 的脚本语言起…

【数据结构】特殊的二叉树及其两种存储结构

文章目录 一、二叉树的定义二、特殊的二叉树三、二叉树的存储结构1.顺序结构存储2.链式结构存储 一、二叉树的定义 ​ 了解到树结构之后&#xff0c;介绍一下二叉树&#xff0c;首先我们来做个游戏&#xff0c;我在纸上巳经写好了一个l00以内的正整数数字&#xff0c;请大家想…

1166:求f(x,n) 和1167:再求f(x,n)

1166&#xff1a;求f(x,n) 看起来有点意思的函数题&#xff0c;递归即可 想听题解推荐&#xff1a;《信息学奥赛一本通》题解_1166_求f(x,n) #include <iostream> #include <vector> #include <queue> #include <deque> #include <forward_list>…

如何自学黑客入门技术?

黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员&#xff09;的分享如下&#xff…

数值计算 - 习题复习

1⃣️求矩阵的计算量 2⃣️求相对误差限 3⃣️根据最大误差求绝对误差限和相对误差限 ⚠️为什么使用微分&#xff1f; 绝对误差通过微分近似来计算基于这样的理念&#xff1a;如果我们在某个点附近考虑一个函数&#xff0c;那么该函数在该点附近的行为可以通过该点的切线来近似…

recurdyn一般接触特征参数含义

一般接触特征设置 Static Threshold Velocity静态门槛速度&#xff1a;判断静态摩擦和动态摩擦的标准&#xff0c;若相对速度小于此值&#xff0c;摩擦为静摩擦&#xff1b;若相对速度大于此值&#xff0c;摩擦为动摩擦。静态摩擦区域内摩擦系数计算函数为 Dynamic Threshold V…

【Flutter 工程】006-路由跳转:go_router

【Flutter 工程】006-路由跳转&#xff1a;go_router 文章目录 【Flutter 工程】006-路由跳转&#xff1a;go_router一、概述1、简介2、主页 二、基本使用1、安装2、修改默认的 main.dart3、创建 router.dart4、创建 home_page.dart5、创建 setting_page.dart6、运行结果 三、g…

高并发封神之作的《亿级流量高并发》惨遭GitHub免费开源

前言 随着软件行业的飞速发展&#xff0c;互联网公司对开发者的技能要求也越来越高。而高并发&#xff0c;网络编程、微服务、海量数据的处理等技能&#xff0c;是每一个开发者进阶时的必学知识。 很多程序员在初步掌握了基础编程之后&#xff0c;如何提高编程能力是每一个开发…

AcWing算法提高课-1.3.12潜水员

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 潜水员为了潜水要使用特殊的装备。 他有一个带2种气体的气缸&#xff1a;一个为氧气&#xff0c;一个为氮气。 让潜水员下潜的深…

【后端】黑马MVC案例详解

最近刚入门后端&#xff0c;对不起&#xff0c;我背叛了游戏【哭】 跟着写了一个这样的案例 网页界面是这样的 没写删除&#xff0c;里面带有增加行和修改表单数据的功能 web方面就三个页面&#xff0c;里面涉及到了Mybatis&#xff0c;Tomcat&#xff0c;JSP&#xff0c;Ser…

【数据结构】-三路划分的排序思想

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点…

【刷题之路】LeetCode 面试题 03.02. 栈的最小值

【刷题之路】LeetCode 面试题 03.02. 栈的最小值 一、题目描述二、解题1、方法1——“辅助栈”1.1、思路分析1.2、代码实现 一、题目描述 原题连接&#xff1a; 面试题 03.02. 栈的最小值 题目描述&#xff1a; 请设计一个栈&#xff0c;除了常规栈支持的pop与push函数以外&am…

MCSM面板一键搭建我的世界服务器 - 外网远程联机【内网穿透工具】

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 转载自远程穿透文章&…

Seata-Server安装

1.去哪下 发布说明: https://github.com/seata/seata/releases 2.怎么玩 本地**Transactional**全局**GlobalTransactional** 我们只需要使用一个 GlobalTransactional 注解在业务方法上: 3.Seata-Server安装 官网地址 3.1.版本0.9.0 seata-server-0.9.0.zip解压到指定目…

Python相关性分析代码

进行相关性分析的代码主要涉及数据处理和统计分析。以下是使用 Python 进行相关性分析的一般步骤&#xff1a; 1.导入必要的库&#xff1a; import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt 2.读取数据&#xff1a;将你的数据加载…

PyTorch-nn.Module

目录 1. 基本操作 2. 卷积操作 2.1 torch.nn.functional — conv2d 2.2 torch.nn.Conv2d 3. 池化层 4. 非线性激活 4.1 使用ReLU非线性激活 4.2 使用Sigmoid非线性激活 5. 线性激活 6. PyTorch的一些图像模型 1. 基本操作 import torch from torch import nnclass…

日撸 Java 三百行day54-55

文章目录 说明day54 基于 M-distance 的推荐1. M-distance 理解2.代码理解1.代码中变量的解读2.leave-one-out测试3.计算MAE(平均绝对误差)4.计算RMSE&#xff08;均方根误差&#xff09; day55 基于 M-distance 的推荐&#xff08;续&#xff09;1.基于用户和基于项目的推荐2.…

ASEMI代理长电可控硅BT134的工作原理,BT134的应用领域

编辑-Z 本文将对可控硅BT134的工作原理及应用领域进行详细阐述。首先&#xff0c;我们将介绍可控硅BT134的基本概念和工作原理&#xff1b;其次&#xff0c;我们将探讨可控硅BT134在电力电子领域的应用&#xff1b;接着&#xff0c;我们将分析可控硅BT134在家用电器中的应用&a…

一种使用Java的快速将Web中表格转换成Excel的方法

背景 随着后疫情时代的到来&#xff0c;在过去的2022年&#xff0c;全国的经济情况&#xff0c;想必是很多学者和研究对象都非常关心的事。而这些数据在国家统计局网站上都有相应的记录。通过分析这些数据&#xff0c;可以从某一个角度来验证和观察当下的经济情况。 全国共计有…

Less基础速学 —— 嵌套、变量、注释、

关于CSS的预处理有读者了解到的就有主流的这三种&#xff1a;less 、sass/sacc 和 stylus&#xff0c;那么在使用这些CSS的预处理器&#xff0c;有浏览器的用法和服务器端的方法&#xff0c;例如使用Node来通过NPM包管理工具下载安装less在服务端来跑&#xff0c;那么在浏览器上…