侧边栏壁纸
博主昵称
流苏小筑

步伐虽小,密而不止

MySQL索引的数据结构:MyISAM中的索引方案

2023年06月24日 100阅读 0评论 0点赞

MySQL索引的数据结构:MyISAM中的索引方案

1. B-Tree树

MyISAM使用B-Tree索引,MySQL官方同样是B+树,国内称为B树。
只不过MyISAM的B+树中的叶子节点存放的是数据记录的地址。


2. MyISAM索引的原理

我们知道InnoDB中索引即数据,也就是聚簇索引的那可B+树的叶子节点将所有数据都包含了。虽然MyISAM也是用树结构存储索引,但却是将索引和数据分开存放。
还记得之前的MyISAM引擎的文件结构吗
表名.frm --- 表结构
表名.MYI --- 存索引
表名.MYD ---存数据

  1. MyISAM引擎将表中的数据按照记录的插入顺序单独存储在一个文件中,称数据文件(.MYD),这个文件并不划分若干个数据页,有多少记录塞多少记录,也没有顺序,所以无法使用二分查找法查找数据
  2. MyISAM引擎会将索引存放在另一个文件中,称为索引文件(.MYI),MyISAM会为表的主键单独创建一个索引,只不过索引的叶子节点存放的不是完整的用户记录,而是主键值+数据的地址组合。

3.MyISAM主键索引结构如下图所示:

m4dykpdb.png

4. 二级索引

MyISAM中只有主键索引和二级索引,主键索引和二级索引在结构上没有任何区别,区别在于主键索引不可以重复,而二级索引可以重复。
二级索引结构图如下图所示:
m4dylufr.png

0

—— 评论区 ——

昵称
邮箱
网址
取消
博主栏壁纸
博主头像 流苏小筑

步伐虽小,密而不止

136 文章数
27 标签数
16 评论量