首页
看点啥
插画图片
首页 热点时事 7-事务控制篇-2

7-事务控制篇-2

2026-05-19 0

6.简述InnoDB与MyISAM实现索引方式的区别?

首先两者都是用的是B+树索引,但二者的实现方式不同。

7-事务控制篇-2

对于主键索引,InnoDB中叶子节点保存了完整的数据记录,而MyISAM中索引文件与数据文件是分离的,叶子节点上的索引文件仅保存了数据记录的地址.

对于辅助索引,InnoDB中辅助索引会对主键进行存储,查找时,先通过辅助索引的B+树在叶子节点获取对应的主键,然后使用主键在主索引B+树上检索操作,最终得到行数据;MyISAM中要求主索引是唯一的,而辅助索引可以是重复的,主索引与辅助索引没有任何区别,因此,MyISAM中索引检索的算法为首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值,然后以data域的值为地址,读取相应数据记录。

7.简述什么是聚簇索引与非聚簇索引?

8.主键索引是聚集索引还是非聚集索引?

聚集索引决定了数据库的物理存储结构,而主键只是确定表格逻辑组织方式。这两者是不一样的

在InnoDB下主键索引是聚集索引,在MyISAM下主键索引是非聚集索引。

9.简述InnoDB为什么使用自增id作为主键?

MySQL底层使用是使用数据页为单位来存储数据的,一个数据页大小默认为16K,当数据页满了,就会申请新的数据页进行存储数据。

如果主键为自增 id 的话,mysql 在写满一个数据页的时候,直接申请另一个新数据页接着写就可以了。

如果主键是非自增 id,为了确保索引有序,mysql 就需要将每次插入的数据都放到合适的位置上。当往一个快满或已满的数据页中插入数据时,新插入的数据会将数据页写满,mysql 需要申请新的数据页,并且把上个数据页中的部分数据挪到新的数据页上。这就造成了页分裂,这个大量移动数据的过程是会严重影响插入效率。

10.简述为什么主键越小越好?

主键占用空间越大,每个页存储的主键个数越少,路树就越少,B+树的深度会边长,导致IO次数会变多。 辅助索引的叶子节点上保存的是主键 id 的值,如果主键 id 占空间较大的话,那将会成倍增加 mysql 空间占用大小。

喜欢(0)

上一篇

AI 热潮冲击供应链:苹果 DRAM 议价权削弱,重心转向保供而非最优价

AI 热潮冲击供应链:苹果 DRAM 议价权削弱,重心转向保供而非最优价

下一篇

电视剧《锋利的口琴》剧情介绍

电视剧《锋利的口琴》剧情介绍
猜你喜欢