首页 > 数据库 >mysql面试高频问题---覆盖索引

mysql面试高频问题---覆盖索引

时间:2024-02-22 17:12:53浏览次数:31  
标签:name 覆盖 查询 --- 索引 mysql id 分页

覆盖索引

1. 问题

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

判断下面的SQL哪些是覆盖索引,为什么?

select * from tb_user where id = 1
是,因为根据id查询的,id默认是主键索引,就是聚簇索引,聚簇索引中对应的是整行的记录

select id,name from tb_user where name = 'Arm'
是,因为通过name这个二级索引也可以找到id,是一次性可以查询出来id和name的

select id,name,gender from tb_user where name = 'Arm'
不是,需要通过回表查询才能获取到gender

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

3. mysql超大分页处理
在数据量比较大时,如果进行limit分页查询,在查询时,越往后,分页查询效率越低。
我们一起来看看执行limit分页查询耗时对比:

因为,当在进行分页查询时,如果执行limit 9000000,10,此时需要MySQL排序前9000010记录,仅仅返回9000000 - 9000010 的记录,其他记录丢弃,查询排序的代价非常大。
优化思路:
一般分页查询时,通过创建覆盖索引能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化

4. 问题总结

5. 问答

标签:name,覆盖,查询,---,索引,mysql,id,分页
From: https://www.cnblogs.com/xiaolibiji/p/18027731

相关文章

  • 洛谷题单指南-贪心-P1803 凌乱的yyy / 线段覆盖
    原题链接:https://www.luogu.com.cn/problem/P1803题意解读:通过某种贪心策略,使得能参加的比赛数越多越好。解题思路:将比赛按照结束时间由小到大哦排序,贪心策略是优先选择结束时间早的比赛,因为这样能保证后面参加更多其他比赛100分代码:#include<bits/stdc++.h>usingnamespa......
  • 计算机三级(网络技术)--第二章 核心层网络结构设计
    2.3网络关键设备选型路由器选型高端路由器中端路由器(企业级路由器)低端路由器路由器性能主要指(背板交换能力)关键技术指标吞吐量指(包转发能力)路由器包转能力与(端口数量、端口速率、包类型、包长度关系密切)无端口类型背板能力决定了吞吐量   高性能路由器:......
  • 第七关-Less-7
    GET-Dumpintooutfile-String(导出文件GET字符型注入)我们还是一样的来判断注入点:我们输入?id=1来查看一下:这么我们发现回显的页面没有任何有用的信息我们再试一下下面这结果payload:?id=1'?id=1"?id=1')?id=1'))?id=1")?id=1"))经过多次尝试,我们发现了它的闭合......
  • el-date-picker 限制30天
    <el-date-pickerv-model="dateRange"size="small"style="width:240px"value-format="yyyy-MM-dd"type="daterange"......
  • mysql面试高频问题---索引
    索引1.问题?什么是索引索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。维护树的数据结构,提高......
  • MDQ100-16-ASEMI电源控制柜模块MDQ100-16
    编辑:llMDQ100-16-ASEMI电源控制柜模块MDQ100-16型号:MDQ100-16品牌:ASEMI正向电流(Id):100A反向耐压(VRRM):1600V正向浪涌电流:500A正向电压(VF):1.90V引脚数量:5芯片个数:5芯片尺寸:MIL功率(Pd):大功率设备封装:M18工作温度:-40°C~150°C类型:整流模块、整流桥MDQ100-16描述:ASEMI......
  • Jenkins CLI 任意文件读取漏洞(CVE-2024-23897)复现
    0x00漏洞简介Jenkins是一款基于JAVA开发的开源自动化服务器。Jenkins使用args4j来解析命令行输入,并支持通过HTTP、WebSocket等协议远程传入命令行参数。在args4j中,用户可以通过@字符来加载任意文件。这一特性存在安全风险,攻击者可以利用它来读取服务器上的任意文件。0x01影响......
  • mysql面试高频问题---慢查询如何定位和优化⬆️
    优化-sql执行很慢,如何解决聚合查询:新增临时表多表查询:优化sql语句结构表数据量过大查询:添加索引深度分页查询解决方案一个SQL语句执行很慢,如何分析?可以采用EXPLAIN或者DESC命令获取MySQL如何执行SELECT语句的信息展示SQL执行的情况,部分字段说明如下:个人测试总结......
  • 洛谷题单指南-贪心-P1223 排队接水
    原题链接:https://www.luogu.com.cn/problem/P1223题意解读:第i个人接水时,后面的n-i个人就要等待,要使平均等待时间最短,即总等待时间最短,贪心法解题。解题思路:设一共n个人,第i人的接水时间为ti总等待时间为:t1*(n-1)+t2*(n-2)+...+tn直观上,贪心策略应该是让接水时间短的人在前,后面......
  • 关于uni-easyinput组件的获焦和失焦
    问题描述此组件的获焦和失焦事件,在第一次执行获焦方法后,主动点击失焦。然后再执行获焦方法,会发现本次的获焦方法未生效。流程如下<uni-easyinputref="inputElem"v-model="value"/>constinputElem=ref(null)//step1、第一次执行获焦方法。结果:生效,成功获焦inputElem.va......