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

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

时间:2024-02-22 16:56:55浏览次数:27  
标签:存储 --- 索引 查找 二叉树 mysql 数据结构 节点

索引

1. 问题?什么是索引

索引(index) 是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),
这些数据结构以某种方式引用 (指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

维护树的数据结构,提高查找效率,减少IO的操作


B+树、二叉树、红黑树、B树

2. 数据结构对比
MySQL默认使用的索引底层数据结构是B+树。再聊B+树之前,我们先聊聊二叉树和B树

B-Tree,B树是一种多叉路衡查找树,相对于二叉树,B树每个节点可以有多个分支,即多叉。
以一颗最大度数(max-degree)为5(5阶)的b-tree为例,那这个B树每个节点最多存储4个key

B+Tree是在BTree基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构

B树与B+树对比:

  • 磁盘读写代价B+树更低(非叶子节点不存储数据);
  • 查询效率B+树更加稳定(数据都存储在叶子节点);
  • B+树便于扫库和区间查询(叶子节点之间使用的双向指针)

3. 问题总结

4. 问答

标签:存储,---,索引,查找,二叉树,mysql,数据结构,节点
From: https://www.cnblogs.com/xiaolibiji/p/18027697

相关文章

  • 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......
  • MDS100-16-ASEMI单相交流用电设备MDS100-16
    编辑:llMDS100-16-ASEMI单相交流用电设备MDS100-16型号:MDS100-16品牌:ASEMI封装:M18最大重复峰值反向电压:1600V最大正向平均整流电流(Vdss):100A功率(Pd):大功率芯片个数:5引脚数量:5类型:整流模块、整流桥正向浪涌电流:920A正向电压:1.90V最大输出电压(RMS):封装尺寸:如图工作温......
  • mysql面试高频问题---如何定位慢查询⌚️
    mysql知识体系1.优化-如何定位慢查询-问题引入聚合查询多表查询表数据量过大查询深度分页查询表象:页面加载过慢、接口压测响应时间过长(超过1s)2.解决方案方案一:开源工具调试工具:Arthas(阿尔萨斯)运维工具:Prometheus、Skywalking方案二:Mysql自带慢日志生产环......
  • Leetcode刷题第十二天-动态规划
    1049:最后一块石头的重量II链接:1049.最后一块石头的重量II-力扣(LeetCode)1classSolution:2deflastStoneWeightII(self,stones:List[int])->int:3#dp[i]背包为i的最大价值为dp[i]4#推导公式dp[i]=max(dp[i],dp[i-stones[i]]+stones[i]......
  • NanoFramework操作ESP32(一)_基础元器件篇(二十六)_ KY-028热敏传感器(数字温度)
    一、元器件介绍    检测环境温度1、针脚用途编号名称功能1AO模拟量输出2G电源地3+电源正4DO开关量输出,温度高于某值时输出高电压,低于阀值时输出低电平二、示例代码1、代码:元器件的针脚ESP32模块的针脚AO;声音......
  • flink之核心抽象--Window窗口及窗口操作全面详解
    flink之核心抽象--Window窗口及窗口操作全面详解标签:flink 窗口 String val -- 元素 Long window1.Windows1.1.基本概念窗口是处理无限流的核心。窗口将流划分为固定大小的“桶”,方便程序员在上面应用各种计算。Window操作是流式数据处理的一种非常核心的抽象,......