B树与B+树与Mysql innodb的B+树和其相关索引

文章目录

  • 前言
    • B树与B+树与Mysql innodb的B+树和其相关索引
      • 1. B树
      • 2. B+树
      • 3. Mysql上的Innodb 的B+树
      • 4. 基于 innodb的B+树说索引
      • 5. mysql中的数据类型转换需要注意哪些事项

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


B树与B+树与Mysql innodb的B+树和其相关索引

1. B树

B树:一个节点有多个元素
具体有多少个元素根据Degree来设置的
如果Degree为3,那么B树最多三个分支,每个节点最多两个元素。

排序:节点的左边都是比它小的,节点的右边都是比它大的,节点内部的元素也是排了序的。

2. B+树

B+树:
一个节点有多个元素
排了序
叶子节点有指针
非叶子节点的元素都冗余了一份在叶子节点上面,
B+树上面存储的所有元素都在我们的叶子上面,而且叶子节点都是有指针链接并且是有序的。

3. Mysql上的Innodb 的B+树

Mysql上的Innodb 的B+树:
没有数据冗余,上面哪个B+树数据结构是单向的指针,而mysql上的B+树是双向的指针
数据存储特点:最下层的叶子节点上存储数据,也叫数据页,上面节点存储的是页,存储的是目录,也叫索引页。

注意的是两层的B+树性能最好,三层的次之,剩下的性能就不怎么好了,可能需要分库分表了,建议B+树最好是两层,B+树里面的元素在mysql里叫做页,一页的大小是16kb。

这些都是B+树,可以理解为B+树是B树的一个升级,mysql这个叫B+树,我们刚刚的示例也是B+树,这个就看个人理解了,可能别的中间件它B+树可能也不一样,但它也叫B+树。

4. 基于 innodb的B+树说索引

Mysql在插入的时候,以主键的值来进行排序,所以主键最好是递增的方式,这样的话,会降低排序的性能。

主键索引也叫聚族索引,它主要原理是在B+树最下面的叶子节点即数据页上直接查到对应的数据。

而其他索引,就是先查B+树上面的索引页,然后在找到对应的数据页,找到具体的值。

从数据页上从左到右依次查找就叫全表扫描

联合索引最左前缀原则和你的where条件里边的顺序无关。主要看的是联合索引最左边的字段,在where条件有没有加。

注意的是对于范围查查,并不是你加了索引,就一定会走索引,mysql会根据情况不同采取走索引或者走全表扫描,或者覆盖索引,因此对于范围查找,数据越精确越好,可以利用索引快速的查找。

Order by 什么时候会导致索引失效
示例:
表 t1(a字段,b字段,c字段)
select * from t1 order by a,b,c;
联合索引(a,b,c)

它有两种可能:
第一种,走全局扫描,额外排序(内存), 不需要回表

第二种,走索引,因为你排序的规则和联合索引排序的规则一样,不需要排序,但是需要回表。
因为回表的性能要比内存排序大很多,当数据量小的时候,第一种全局扫描就比较快,这时候就会走全局扫描。

select c from order by a,b,c;

因为你的select 是 c 字段,不是*,这时候你即不需要回表也不需要排序,因此这时候就会走索引。

所以我们开发过程中尽量不要使用*,可以减少回表的动作。

5. mysql中的数据类型转换需要注意哪些事项

当where条件后涉及到数据类型转换的时候,
比如:
Where huh = 1
其中huh为varcher类型
当mysql执行此语句的时候,它会首先将huh先转换成数字在进行对比,这样的话,会导致你的innodb之前存储的的索引页和你执行过程中转换的数字对应不上,所以不会走索引,而是走全局扫描,所以凡是对字段操作的都不会走索引,比如:
where hub +1=1 和对字段类型转换的也不会走索引

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

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

相关文章

如何在Bing搜索进行广告推广?2024年必应广告投放怎么做?【附开户攻略】

必应(Bing)作为全球领先的搜索引擎之一,拥有一个独特且庞大的用户群体,尤其在美国和欧洲市场,很多用户选择必应作为他们的主要搜索引擎。通过必应广告,企业可以触达那些在其他搜索引擎上难以接触到的潜在客…

自定义打印外观

以下示例代码演示了如何将打印外观和背景颜色自定义应用于网格控件中的偶数行。 gridView1.OptionsPrint.UsePrintStyles true; // Enable the AppearancePrint.EvenRow propertys settings. gridView1.OptionsPrint.EnableAppearanceEvenRow true; // Set the background c…

【机器学习】基于3D CNN通过CT图像分类预测肺炎

1. 引言 1.1. 研究背景 在医学诊断中,医生通过分析CT影像来预测疾病时,面临一些挑战和局限性: 图像信息的广度与复杂性: CT扫描生成的大量图像对医生来说既是信息的宝库也是处理上的负担。每组CT数据可能包含数百张切片&#xf…

【Excel技巧】Excel打开密码的两种设置方法!

excel文件打开密码可以再打开文件时输入密码查看文件内容,这样就可以保护文件内容不被任何人查看了,今天分享excel打开密码的两种设置方法给大家。 方法一: 点击excel中的【文件】功能,找到【信息】-【保护工作表】-【用密码进行…

Spring6

一 概述 1.1、Spring是什么? Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测…

2024年计算机相关专业是否还值得选择

目录 1.概述 1.1.就业前景 1.2.个人兴趣与能力 1.3.专业发展与趋势 1.4.市场饱和度与竞争 1.5.建议与展望 2.行业竞争现状 2.1.行业饱和度 2.2.新兴技术的影响 2.3.人才需求的变化 2.4.行业内的创新动态 2.5.保持从业者的竞争力 2.6.小结 3.专业与个人的匹配度判断…

高光谱成像光源 实现对细微色差的分类--51camera

光源在机器视觉中的重要性不容小觑,它直接影响到图像的质量,进而影响整个系统的性能。然而自然光LED光源不能完全满足实际需求,比如对细微的色差进行分类,我们就需要考虑红外高光谱光源。 所谓高光谱成像,是指使用具有…

【数学建模】微分方程的数值求解

微分方程的数值求解 一阶差分求解微分方程原理:四阶龙格-库塔方法应用:小船渡河问题: 进阶求二阶微分方程 一阶差分求解微分方程原理: d y d x f ( x n , y n ) \dfrac{dy}{dx}f(x_n,y_n) dxdy​f(xn​,yn​) y n 1 − y n x n 1 − x n f ( x n , y n ) \dfrac{y_{n1}-y_n…

git多账号使用报错:You don‘t have permissions to push to “xxx/xxxx“ onGitHub. Would

git多账号使用报错:You don’t have permissions to push to “xxx/xxxx” onGitHub. Would 有的时候我们有两个甚至多个git账号(公司的git账号和自己的github),为了不混淆提交,我们需要在提交之前查看自己的git账号必…

9_1 Linux 网络管理

9_1 Linux 网络管理 文章目录 9_1 Linux 网络管理[toc]1. 构建yum仓库2. 配置主机名3. 配置网络参数之IP地址与子网掩码、网关地址3.1 修改网卡命名规则(eth0,eth1,eth2)3.2 配置地址3.2.1 nmcli3.2.2 配置文件修改IP地址、子网掩…

渗透测试之内核安全系列课程:Rootkit技术初探(五)

今天,我们来讲一下内核安全! 本文章仅提供学习,切勿将其用于不法手段! 目前,在渗透测试领域,主要分为了两个发展方向,分别为Web攻防领域和PWN(二进制安全)攻防领域。在…

人工智能对聊天机器人训练数据的“淘金热”可能会耗尽人类编写的文本

人工智能对聊天机器人训练数据的“淘金热”可能会耗尽人类编写的文本 像ChatGPT这样的人工智能系统可能很快就会耗尽让它们变得更聪明的东西——人们在网上写下和分享的数万亿字。 Epoch AI研究集团发布的一项新研究预计,科技公司将在大约十年之交——2026年至203…

Linux快速保存文件的快捷键:w和快速保存并退出ZZ

在Linux中,使用vi或Vim编辑器时,保存文件的快捷键主要是:w。以下是关于vi/Vim编辑器中保存操作的详细快捷键和说明: 1、保存文件 :w :这是最常用的保存命令。在命令模式下(按Esc键进入),输入:…

【Linux】ls命令

这个命令主要是用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。 掌握几个重点的常使用的就可以: ls -l # 以长格式显示当前目录中的文件和目录 ls -a # 显示当前目录中的所有文件和目录&am…

Go使用https

一、服务端 1. 生成私钥和证书 安装OpenSSL windows安装OpenSSL生成CA证书创建证书 以上两个步骤,参考:Go http2 和 h2c 2. 代码 package mainimport ("log""net/http""time""golang.org/x/net/http2" )co…

TCP四次挥手全过程详解

TCP四次挥手全过程 有几点需要澄清: 1.首先,tcp四次挥手只有主动和被动方之分,没有客户端和服务端的概念 2.其次,发送报文段是tcp协议栈的行为,用户态调用close会陷入到内核态 3.再者,图中的情况前提是双…

【递归、搜索与回溯】穷举vs暴搜vs深搜vs回溯vs剪枝

穷举vs暴搜vs深搜vs回溯vs剪枝 1.全排列2.子集 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 管他什么深搜、回溯还是剪枝,画出决…

使用API有效率地管理Dynadot域名,创建文件夹管理域名

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

李廉洋:6.11黄金原油持续震荡上行,今日行情走势分析策略。

黄金消息面分析:上周黄金市场的走势受到了PCE通胀数据和美联储政策预期的显着影响。尽管市场对黄金的长期看涨情绪依然存在,但短期内金价的波动性预计将持续。4月份的PCE通胀数据显示价格压力有所降温,这一结果与分析师预期一致,但…

分享一些班组长日常管理工作的经验

在企业管理中,班组长作为基层的管理者和执行者,扮演着至关重要的角色。他们不仅要确保生产任务的顺利完成,还要负责团队建设、员工激励和沟通协调等工作。本文,深圳天行健精益管理咨询公司旨在分享一些班组长日常管理工作的经验&a…