【MySQL面试题】经典面试题之“b+树”

mysql为什么采用b+树作为索引?

为什么要使用b+树,首先我们要知道什么样的索引才是好的索引,高效的索引,我们都知道,mysql的数据是存储在磁盘的,而磁盘的io操作十分缓慢,我们通过索引去进行一次查询操作时,需要经过多次io操作,这其实是十分消耗查询时间的,也是我们不愿意看见的。

所以说,高效索引的关键就是减少io操作。

我们的b+树有着b树的特点,并且叶子节点才存储我们的数据,在非叶子节点上只会存储索引,这样一来,在相同的一个数据量下,我们的b+树能存放更多的索引,比b树更加矮胖,查询io操作更少

b+树有大量的冗余节点,在插入、删除方面效率更高。

扫表能力更强,因为我们只需要遍历叶子节点就行了,不需要遍历整个b+树就能拿到所有的数据。

在面试时建议大家这么答

Mysq|索引使用的是B+树,因为索引是用来加快查询的,而B +树通过对数据进行排序所以是可以提高查询速度的,然后通过一个节点中可以存储多个元素,从而可以使得B +树的高度不会太高,在Mysql中一 个Innodb页就是一 个B+ 树节点,一个Innodb页默认16kb, 所以一般情况下一颗三层的B+ 树可以存2000万行左右的数据,然后通过利用B+树叶子节点存储了所有数据并且进行了排序,并且叶子节点之间有指针,可以很好的支持全表扫描,范围查找等SQL语句.

想要深入底层的了解原理推荐这篇文章: 为什么 MySQL 采用 B+ 树作为索引? | 小林coding (xiaolincoding.com)

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

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

相关文章

Rust基本数据类型-切片

一、切片是什么,怎么用 1、切片是什么 切片并不是 Rust 独有的概念,在 Go 语言中就非常流行,它允许你引用集合中部分连续的元素序列,而不是引用整个集合。 对于字符串而言,切片就是对 String 类型中某一部分的引用&…

愉快的高效:通过电子学习培训客户

让顾客和合作伙伴忠诚于您的最有效方法之一是教导他们正确使用您的产品或服务。我们不是指书面说明书-它们枯燥复杂,没有人愿意阅读。基于现代数字技术的电子学习,或培训课程,可以帮助您吸引和留住顾客。 根据Brandon Hall进行的调查&#x…

【智能算法】金豺优化算法(GJO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年,N Chopra等人受到金豺狩猎行为启发,提出了金豺优化算法(Golden Jackal Optimization, GJO)。 2.算法原理 2.1算法思想 GJO 模拟金豺协同狩猎…

【C语言进阶】动态内存管理

📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL.. 📚以后会将数据结构收录为一个系列,敬请期待 ● 本期内容会给大家讲解如何开辟动态内存空间,以及c/c内存是如何分配的,最后还会…

浏览器打不开DevTools?

随笔记录下某网站禁止通过F12, CtrlShiftI等快捷键来打开开发者工具,其次通过浏览器宽高定时来重定向。 目标网站 aHR0cHM6Ly93d3cuemhpaHUuY29tL21hcmtldC9wYWlkX2NvbHVtbi8xNjkxOTY2MTg4MzY2ODYwMjg4L3NlY3Rpb24vMTc1MjcyNjI3MjMzMjIxMDE3Nw问题描述 当我们通过…

瀑布VS敏捷,看看哪种研发管理模式更适合你的团队

软件开发是一个复杂且极具挑战性的过程,需要有合适的研发管理模式。瀑布模型和敏捷开发是两种常见的研发管理模式,它们在项目管理和团队合作方面有着截然不同的理念和实践方式。本文将介绍这两种开发模式的特点、优缺点及对比,提供如何选择适…

react之初识state

第二章 - 添加交互 State: 组件的记忆 组件通常需要根据交互更改屏幕上显示的内容。输入表单应该更新输入字段,单击轮播图上的“下一个”应该更改显示的图片,单击“购买”应该将商品放入购物车。组件需要“记住”某些东西:当前输入值、当前…

解决在 Python 数据分析中遇到的 Matplotlib 字体警告问题

当在 Python 数据分析中遇到类似以下警告时: D:\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:211: RuntimeWarning: Glyph 24037 missing from current font.font.set_text(s, 0.0, flagsflags) D:\anaconda3\lib\site-packages\matplotlib\ba…

美国签证被拒签后怎么申诉?

美国签证被拒签后该如何申诉?这是许多申请者心中的疑问。美国签证被拒签可能会给申请者带来困扰和挫折感,但并非没有解决的办法。下面将介绍一些申诉的常见步骤和注意事项。 首先,需要理解拒签的原因。美国签证被拒签可能是因为申请材料不全、…

Linux 网络操作命令FTP

FTP命令 引言 文件传输协议(FTP)是一种用于在网络上进行文件传输的协议。在Linux系统中,FTP可以作为一个非常有用的工具来上传、下载和管理文件。本文将介绍如何在Linux系统中安装FTP服务器,以及如何使用FTP客户端进行文件传输。…

动态活码二维码怎么制作?在线二维码生成器的使用技巧

二维码是如何生成的呢?现在二维码与我们的工作和生活息息相关,越来越多的场景都会有不同类型的二维码,比如常见的有视频、图片、文件、问卷、文本等等类型的内容。面对不同用途需求来制作二维码来为其他人提供内容展示,提升用户获…

Linux的DNS域名解析服务

目录 1.DNS 1.1定义 1.2作用/功能 1.3域名结构 1.4两种查询方式 1.5DNS域名解析工作原理 1.6DNS系统类型 2.正向解析实验​ 2.1安装bind服务,查看配置文件 2.2配置文件配置及文件内容说明 3.反向解析实验 4.配置主从DNS服务器 1.DNS 1.1定义 DNS域名系…

centos7搭建maven私服nexus

1.nexus Nexus Repository Manager(通常简称 Nexus 或 Nexus RM)是由Sonatype公司开发的一款开源的、强大的软件仓库管理工具,主要用于企业级的二进制组件(如Java库、Node.js模块、Python包等)存储、管理和分发。 官方…

库存数据可视化分析按这个做,赚大了!

今天我们来看一张库存数据可视化分析驾驶舱,全面了解库存资金占用情况,物料周转情况,库存趋势情况、以及占库存金额最高的商品有哪些等。 为更好地实现以上效果,并且增强报表的可读性、易读性,我们采用了按分析场景选…

数据被“锁”?别急,教你如何解锁被“rmallox”勒索病毒加密的文件

在当今数字化时代,网络安全问题日益凸显。其中,勒索病毒成为了一种常见的网络威胁,而rmallox勒索病毒则是其中的一种典型代表。本文将从病毒特性、传播途径、防范策略、紧急措施以及从中得到的社会启示等多个角度,深入探讨rmallox…

什么是云手机?云手机有什么用?

过去,我们手中的手机是我们生活、工作、娱乐的得力助手,但随着时代的变迁和技术的发展,我们需要的不仅仅是一部手机,而是一个更强大、更灵活的工具。在这个时候,云手机横空出世,成为了我们手机使用的新选择…

3d展览模型空间灯光怎么打---模大狮模型网

在设计3D展览模型时,灯光的运用至关重要。合理的空间灯光设计不仅能够烘托展品的氛围和情感,还可以引导观众的视线,增强展览的艺术感和观赏性。本文将介绍如何在3D展览模型中打造出合适的空间灯光效果,以提升展览的吸引力和视觉效…

《代码大全》读后感:软件开发的黄金法则

在软件开发领域,有一本书被誉为“圣经”,那就是《代码大全》。这本书由史蒂夫迈克康奈尔所著,于2006年首次出版,至今仍在全球范围内享有盛誉。它不仅为开发者们提供了详尽的编程技巧,更深入地探讨了软件开发过程中的各…

4.20.1 深度神经网络提高放射科医生在乳腺癌筛查中的表现

新颖的两阶段神经网络,用于将全局和局部信息与适当的训练过程结合起来。这使我们能够使用非常高容量的块级网络从像素级标签中学习,同时网络也可以从宏观乳房级标签中学习。模型可以生成可解释的热图,指示可疑发现的位置。即使在拥有大量图像…

SCP收容物121~130

注 :此文接SCP简介以及116~120的介绍,本文只供开玩笑 ,与steve_gqq_MC合作。 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-121 scp-122 scp-123 scp-124 …