MySQL篇之覆盖索引

一、定义

        覆盖索引是指查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到。

二、例子

       1. id为主键,默认是主键索引。

       2. name字段为普通索引。        

select * from tb_user where id = 1    覆盖索引

select id,name from tb_user where name = 'Arm'     覆盖索引

select id,name,gender from tb_user where name = 'Arm'    非覆盖索引(需要回表查询)

三、解释

        1. 可以根据聚集索引和辅助索引找到的就是覆盖索引。

        2. 而第三条sql里面的gender字段并不在辅助索引里面,需要根据id进行回表查询才能查到gender字段,所以这就不是覆盖查询。

四、解决MYSQL超大分页处理

        在数据量比较大时,如果进行limit分页查询,在查询时,越往后,分页查询效率越低。因为,当在进行分页查询时,如果执行 limit 9000000,10 ,此时需要MySQL排序前9000010 记录,仅仅返回 9000000 - 9000010 的记录,其他记录丢弃,查询排序的代价非常大 。

        优化思路: 一般分页查询时,通过创建 覆盖索引 能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化。

五、面试的回答

面试官:知道什么叫覆盖索引嘛 ?

候选人:覆盖索引是指select查询语句使用了索引,在返回的列,必须在索引中全部能够找到,如果我们使用id查询,它会直接走聚集索引查询,一次索引扫描,直接返回数据,性能高。

如果按照二级索引查询数据的时候,返回的列中没有创建索引,有可能会触发回表查询,尽量避免使用select *,尽量在返回的列中都包含添加索引的字段。

面试官:MYSQL超大分页怎么处理 ?

候选人:嗯,超大分页一般都是在数据量比较大时,我们使用了limit分页查询,并且需要对数据进行排序,这个时候效率就很低,我们可以采用覆盖索引和子查询来解决。

先分页查询数据的id字段,确定了id之后,再用子查询来过滤,只查询这个id列表中的数据就可以了,因为查询id的时候,走的覆盖索引,所以效率可以提升很多。

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

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

相关文章

如何选择适合的社区店项目,开启创业之路

对于想要创业的人来说,选择一个适合的社区店项目是成功的关键。在这篇文章中,我将以一名资深鲜奶吧创业者的身份,分享一些关于如何选择适合的社区店项目的经验和见解,希望能给大家提供有价值的参考。 一、市场调研 在选择社区店…

数据结构实验之栈与队列五:下一较大值(一)

数据结构实验之栈与队列五&#xff1a;下一较大值&#xff08;一&#xff09; Description 对于包含n&#xff08;1<n<1000&#xff09;个整数的序列&#xff0c;对于序列中的每一元素&#xff0c;在序列中查找其位置之后第一个大于它的值&#xff0c;如果找到&#xff…

海量数据处理商用短链接生成器平台 - 4

第六章 架构核心技术-池化思想-异步结合 性能优化最佳实践 第1集 RestTemplate里面的存在的问题你知道多少- Broken pipe错误 项目就更新到第六章了&#xff0c;剩下的内容 放百度网盘里面了&#xff0c;需要的来取。 链接&#xff1a;https://pan.baidu.com/s/19LHPw36dsxPB7…

四、JMS规范

JMS规范 一、JMS是什么二、MQ中间件对比三、JMS组成1.JMS Provider2.JMS Producer3.JMS Consumer4.JSM Message4.1 消息头4.2 消息体4.2.1 生产者4.2.2 消费者 4.3 消息属性 四、JMS可靠性1.PERSISTENT - 持久化1.1 参数设置1.2 Queue持久化1.3 Topic持久化1.3.1 持久的发布主题…

Linux文件操作类命令 touch | stat | cp | scp | alias | mv | dd | cat | head | tail

touch 1.创建空文件&#xff08;只有元数据信息&#xff0c;没有数据段内容&#xff09;touch 1.txt 2.对创建或已经存在的文件改变元数据信息的时间记录值-d 改变创建时间touch -d 20240101 1.txt -a改变访问时间 -m改变修改时间stat 查看元数据信息 Blocks是512字…

KMP算法失配处理

已知字符串s为“abaabaabacacaabaabcc”&#xff0c;模式串T为“abaabc”。采用KMP算法进行匹配&#xff0c;第一次出现“失配”(s[i]≠t[j])时&#xff0c;ij5&#xff0c;则下次开始匹配时i和j的值分别是( ) A.i1&#xff0c;j0 B.i5&#xff0c;j0 C.i5&#xff0c…

排序算法---桶排序

原创不易&#xff0c;转载请注明出处。欢迎点赞收藏~ 桶排序&#xff08;Bucket Sort&#xff09;是一种排序算法&#xff0c;它将待排序的数据分到几个有序的桶中&#xff0c;每个桶再分别进行排序&#xff0c;最后将各个桶中的数据按照顺序依次取出&#xff0c;即可得到有序序…

【机器学习笔记】 9 集成学习

集成学习方法概述 Bagging 从训练集中进行子抽样组成每个基模型所需要的子训练集&#xff0c;对所有基模型预测的结果进行综合产生最终的预测结果&#xff1a; 假设一个班级每个人的成绩都不太好&#xff0c;每个人单独做的考卷分数都不高&#xff0c;但每个人都把自己会做的…

在 Android 上部署自定义 YOLOv8 教程

在本教程中&#xff0c;我将向您展示如何在 Android 设备上使用自定义数据集部署 YOLOv8。想要了解如何在 Android 设备上使用您自己的数据集部署 YOLOv8&#xff1f;本文将展示如何操作。 Android 上的 自定义 YOLOv8 &#x1f525; ⚡️ 结果显示标题 对从 GoPro 流式传输到移…

Sora时代,我们的AI应该何去何从?——关于Sora大模型的思考

Sora时代&#xff0c;我们的AI应该何去何从?——关于Sora大模型的思考 一、Sora大模型&#xff1a;横空出世&#xff0c;让AI生成所有领域瑟瑟发抖二、Sora的出现代表了相关行业的灭亡&#xff1f;三、我们将何去何从&#xff1f; 一、Sora大模型&#xff1a;横空出世&#xf…

【机器学习案例7】计算机视觉中的小物体检测:基于补丁的方法

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《机器学习实用指南》本专栏旨在提供 1.机器学习经典案例及源码;2.开源机器学习训练数据集;3.机器学习前沿专业博文。以案例的形式从实用的角度出发,快速上手机器学习项目,在案例中成长…

掌握XGBoost:GPU 加速与性能优化

导言 XGBoost是一种强大的机器学习算法&#xff0c;但在处理大规模数据时&#xff0c;传统的CPU计算可能会变得缓慢。为了提高性能&#xff0c;XGBoost可以利用GPU进行加速。本教程将介绍如何在Python中使用XGBoost进行GPU加速以及性能优化的方法&#xff0c;并提供相应的代码…

1.8 NLP自然语言处理

NLP自然语言处理 更多内容&#xff0c;请关注&#xff1a; github&#xff1a;https://github.com/gotonote/Autopilot-Notes.git 一、简介 seq2seq(Sequence to Sequence)是一种输入不定长序列&#xff0c;产生不定长序列的模型&#xff0c;典型的处理任务是机器翻译&#…

[C# WPF] 如何给控件添加边框(Border)?

在WPF中&#xff0c;可以使用边框控件或者边框属性来为控件添加边框。 以下是两种常见的方法&#xff1a; 方法1&#xff1a;使用边框控件&#xff08;Border&#xff09; WPF中的Border控件用于为其他控件添加边框效果。它是一个容器控件&#xff0c;可以包含一个子元素&…

前端常见的设计模式

说到设计模式&#xff0c;大家想到的就是六大原则&#xff0c;23种模式。这么多模式&#xff0c;并非都要记住&#xff0c;但作为前端开发&#xff0c;对于前端出现率高的设计模式还是有必要了解并掌握的&#xff0c;浅浅掌握9种模式后&#xff0c;整理了这份文章。 六大原则&…

Linux第一个小程序-进度条

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、回车和换行 二、行缓冲区概念 三、倒计时 四、进度条代码 版本一&#xff1a; ​编辑 版本二&#xff1a; 总结 前言 世上有两种耀眼的光芒&#xff0c;一…

第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目开发背景和项目目标&#xff1a;二、雏形示例代码三、扩展思路介绍四、数据输入示例代码五、数据分析示例代码六、排名统计示例代码七、数据导入导出示例代码八、主题定制示例代码九、数据过…

C语言----结构体

一.结构体是什么&#xff1f; (1)是一种数据类型 首先我们需要知道的是结构体是一种数据类型&#xff0c;它本质上是用于将不同类型的数据组合在一起形成的一个新的数据类型。 (2)是变化的 当不同的类型组合在一起的时候&#xff0c;会产生不同的结构体&#xff0c;例如用c…

reDOS攻击

正则表达式回溯&#xff1a; 当涉及到正则表达式的回溯时&#xff0c;让我们来看一个具体的例子。 考虑以下正则表达式模式 ab&#xff0c;其中 a 表示匹配一个或多个连续的字符 "a"&#xff0c;b 表示匹配字符 "b"。 现在&#xff0c;假设有一个输入字…

中医师承出师考试

一.考试内容 1.临床实践技能考核 临床实践技能考核主要涉及基本操作和临床答辩。基本操作包括中医四诊、针灸、推拿、拔罐、常见急症针灸技术应用等中医临床技术。临床答辩则包括中医基本理论知识&#xff08;含中医经典有关内容&#xff09;、中药的功效、应用、用法用量、使…