公开课学习——基于索引B+树精准建立高性能索引

server/2024/9/24 13:20:12/

文章目录

    • 遇到慢查询怎么办?—— 创建索引
    • 联合索引的底层的数据存储结构长什么样?

mysql脑图
阿里开发手册
在这里插入图片描述

遇到慢查询怎么办?—— 创建索引

在这里插入图片描述
不用索引的话一个一个找太慢了,用索引就快的多。
假如使用树这样的结构建立索引,这样找一个数据,就可以减少查询磁盘的次数(IO性能很低),提高查询效率。

  • mysql为什么没有采用二叉树存储数据?
    假如是col1的数据,存进二叉树就是单支树,退化成链表了,索引白建了,对于自增列不支持高效查询。
  • mysql为什么没有采用红黑树存储数据?
    数据量大的话,树太高。
  • 能不能对红黑树做优化,当数据量大的时候,树的高度依旧可控
    扩大每个节点的存储数据,当存的数据多的时候,高度依旧可控——B树
    在这里插入图片描述
    mysql也不是原封不动用B树,而是做了优化——B+树

在这里插入图片描述
B+树的非叶子节点放到内存,叶子节点放在磁盘,节点内可以使用折半查找,这样查找效率非常高,只需要去磁盘找一次。
在这里插入图片描述
工作中很少使用myIASM,不支持事物,锁等等,我们使用Innodb
在这里插入图片描述

  • 为什么建议InnoDB表要键主键,并且推荐使用整形的自增主键
  • 为什么非主键索引结构叶子节点存储的是主键值?
    因为建了主键,使用主键索引维护这个索引结构,如果没有主键,那就找第一个唯一索引,使用这个唯一索引维护索引结构,假如没有唯一索引怎么办?他就在后台维护一个隐藏字段rowId,从而维护好索引的结构,所以建立主键索引,我们可以直接用,查找效率高哎。同时,整型比大小效率高(UUID是字符串哦),占用空间小,为什么自增呢?
    因为用了自增的节点,B+树永远都是往后面维护节点,可以避免节点的分裂,很少影响性能。所以自增可以提升数据插入的效率

在看这个
在这里插入图片描述
hash索引不支持范围查询,所以也不用这个索引结构。

联合索引的底层的数据存储结构长什么样?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最左前最先原则,只有第一条会走联合索引。
最左前最先原则?为什么会有这个呢?要先排name,才能确定你排的age是唯一的。

后面的内容,额,公开课其实就是卖课的,后面都是主要为了卖课,不讲东西啦。


http://www.ppmy.cn/server/13860.html

相关文章

NodeRed节点编辑用于边缘计算和规则引擎,能做带UI界面和业务逻辑的上位机或前端应用吗?

网站:hhtp://www.uiotos.net 先说结论,可以,但是需要有页面嵌套继承类似的技术,实现页面模块化封装,否则难以实现复杂应用。 相信目光敏锐的人都在关注节点编辑在自身行业的应用! NodeRed在边缘计算做数据…

[杂谈] [杂谈]老实人要突破的想法,显眼包?

前些天说敢优于不敢,因为“敢”了,才能做起来,然后才能有更多的经验“敢”起来,而且能成功!今天要说的也是也要“敢”起来! 俗称说的好:有枣没枣先打一杆子再说!这个很适合作为老实…

MySQL索引为什么选择B+树,而不是二叉树、红黑树、B树?

12.1.为什么没有选择二叉树? 二叉树是一种二分查找树,有很好的查找性能,相当于二分查找。 二叉树的非叶子节值大于左边子节点、小于右边子节点。 原因: 但是当N比较大的时候,树的深度比较高。数据查询的时间主要依赖于磁盘IO的次数,二叉树深度越大,查找的次数越多,性能…

Ubuntu 系统安装 VS Code 并配置 C++ 环境

Linux 系列教程: VMware 安装配置 Ubuntu(最新版、超详细)FinalShell 远程连接 Linux(Ubuntu)系统Ubuntu 系统安装 VS Code 并配置 C 环境 ➡️➡️ ➡️VS Code 官方教程:Using C on Linux in VS Code&…

【Linux系列】 离线安装vnc 可视化桌面

离线安装vnc 可视化桌面 缘下载安装vnc初始化链接 缘 项目需要下载 下载地址: http://mirror.centos.org/centos/7/updates/x86_64/Packages/tigervnc-license-1.8.0-31.el7_9.noarch.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/libXfont2-2.0.…

电力电子技术——单相可控整流电路——单相半波可控整流电路

电力电子技术——单相可控整流电路——单相半波可控整流电路 前言 典型的单相可控整流电路包括单相半波可控整流电路,单相整流电流,单相全波可控整流电路及单相桥式半控整流电路等。单相可控整流电路的交流侧接单相电源。 单相半波可控整流电路是一种基本的可控整流电路,…

tornado模板注入

这是我在做一道ctf题目当中遇到的,不太会,所以浅浅学习了一下,跟大家分享。 1.介绍 tornado是python当中的一个模板,因此这个漏洞是归属于SSTI(服务器模板漏洞),所谓的模板其实就是一种框架,p…

【深度学习】图像修复的一些模型

Mask-Aware Transformer 大空洞修复。 1、图像修复 Introduction 定义 图像修复(Image inpainting、Image completion、image hole-filling)指的是合成图像中缺失区域的过程,可以帮助恢复被遮挡或降质的部分。 在下图中,左图是…