MySQL中的索引事务(1)索引----》数据库运行的原理知识+面试题~

news/2025/2/12 0:02:35/

本篇文章主要讲述MySQL索引事务

所谓的索引index就是指:目录~~

索引存在的意义:加快查找的速度(省略了遍历的过程),但付出了一定的代价~

付出的代价如下:

1.需要付出额外的空间代价来保存索引数据2.索引可能会拖慢新增,删除,修改数据的速度

但是,在总体来说,还是认为索引的利大于弊~~

在实际开发中,查询场景一般要比增删改频率高很多

查看索引:

show index from 表名;

创建索引:

create index 索引名 on 表名(列名);索引名称可任意取

比如:把表中的内容,根据name搞了一份目录(索引)出来~

create index index_student_name on student(name);

创建索引的操作,可能很危险,如果表里的数据很大,这个建立索引的开销也会很大……,其实最好的做法就是:创表之初就把索引设定好了,如果表里已经有很多数据了,那么,索引就别动了~

删除索引:

drop index 索引名 on 表名;

删除索引和创建索引类似,删除索引也是有风险的~~

索引可以加快查询的速度,其实在索引背后的数据结构(查询)是B+树(为数据库索引量身定做的数据结构)~~B+树我们不做特别要求,但是对于B+树的特点与优势咋说咱也得知道点不??

B+树特点:

  1. 一个节点,可以存储N个key,N个key划分出了N个区间(而不是N+1个区间)
  2. 每个节点中的key的值都会在子节点中存在(同时该key是子节点的最大值)
  3. B+树的叶子节点,是首尾相连,类似于链表
  4. 由于叶子节点是完整的数据集合,只在叶子节点这里存储数据表的每一行数据,而非叶子节点,只保存key值本身即可

整个树的所有节点,都包含在叶子节点中(所有非叶子节点中的key最终都会出现在叶子节点中~~)
 

IO:input  output------>输入输出显示数据到显示器上,从键盘输入数据把数据写到硬盘上,从硬盘上读数据把数据写到网卡里,从网卡读数据。

B+ 树的优势:

  1. 当前一个节点保存更多的key,最终树的高度是相对更矮,查询时候减少了IO访问次数(和B树是一样的)(IO是指输入输出)
  2. 所有的查询最终都会落到叶子节点上(查询任何一个数据,经过的IO访问次数是一样的)
  3. B+树的所有叶子节点,构成链表,此时比较方便进行范围查询。
  4. 由于数据都是在叶子节点上,非叶子节点只存储key,导致非叶子节点,所占的空间是比较小的,这些非叶子节点就可以在内存中缓存(或者缓存一部分),又进一步减少了IO的次数。

在MySQL中组织数据的方式:

当年看到一张“表”的时候,实际上这个表不一定是按照“表格”这样的数据结构在硬盘上组织的,也有可能是按照这种树(B+树)形式组织(具体是哪种结构,取决于你的表里有没有索引,一级数据库使用了哪种索引~)

在一个表中:如果id是表的主键,若表里有多个索引呢??(id,name两个索引)表的数据还是按照id为主键,构建出B+树,通过叶子节点组织所有的数据行……,其次,针对name这一列会创建另外一个B+树,但是这个B+树的叶子节点就不再存储这一行的完整数据,而是存储主键id!!!此时,如果你根据name来查询,查到叶子节点得到的只是主键id,还需要通过主键id去主键的B+树里面在查找一次(一共查找两次B+树)(上述的过程称为“回表”,这个过程是MySQL自动完成的,用户感知不到~)


http://www.ppmy.cn/news/1084108.html

相关文章

京东店铺所有商品API接口数据

​​京东平台店铺所有商品数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取京东整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台上商…

CSS 一个好玩的卡片“开卡效果”

文章目录 一、用到的一些CSS技术二、实现效果三、代码 一、用到的一些CSS技术 渐变 conic-gradientbox-shadowclip-path变换、过渡 transform、transition动画 animation keyframes伪类、伪元素 :hover、::before、::after …绝对布局。。。 clip-path 生成网站 https://techb…

Mysql死锁卡死

查询 show processlist是显示用户正在运行的线程 show processlist;删除卡死的进程id kill 110651;

如何实现的手机实景自动直播,都有哪些功能呢?

手机实景自动直播最近真的太火了,全程只需要一部手机,就能完成24小时直播带货,不需要真人出镜,不需要场地,不需要搭建直播间,只需要一部手机就可以了。真人语音讲解,真人智能回复,实…

23HW-0Day(漏洞检测Tools)V1.7—批量漏洞检测

工具更新一、 更新如下漏洞利用: 1、用友移动管理系统appmanager文件上传 2、用友移动管理系统category文件上传 3、用友U8CRM文件上传 4、用友U8CRM文件读取 5、用友U8-Cloud文件上传 6、致远OAM1移动协同软件命令执行 工具更新二、 本次更新,工具支…

Python基础篇(18):异常

一、捕获异常类型 1、语法 try:... except 异常类型1:#捕获到异常后输出的内容 except 异常类型1:#捕获到异常后输出的内容 ... 2、案例 """ num int(input("输入一个整数:")) result 8 / num print(result) """ # n…

一些测试知识

博客主页: https://blog.csdn.net/qq_57785602/category_12023254.html?spm1001.2014.3001.5482https://blog.csdn.net/qq_57785602/category_12023254.html?spm1001.2014.3001.5482 图片网上找的,文章看书或者是平常逛博客看到的,如有侵…

必读干货!独立站新手卖家常见十大问题解答

新手卖家入局跨境电商独立站,会考虑到很多问题,从网站到产品再到售卖最终的发货。而且卖家普遍对独立站存在认知不全的问题,门槛高、推广难、转化难是最初印象。 那独立站该怎么开始,如何下手?今天整理并解答独立站新…