MySQL的MyISAM引擎结构图
2022-05-23 13:16:54 0 举报
MySQL的MyISAM引擎结构图、MyISAM的B+树结构
作者其他创作
大纲/内容
P2
5
18
23
指针
B+树的上下结点,通过链表串联,能够更好的支持范围查询
页
D
12
Name
89
Age
表结构文件: .frm
P3
9
链表
16K
ID
索引值:P1
P1
王武
8
数据记录地址:0x07
6
2
主键
非叶子结点:1、主键索引(8字节)+ 索引(6字节) = 14(字节点)2、页大小:16 * 1024 = 16384 (字节)3、一个非叶子结点可以存储的数据大约:16384 / 14 = 1170(指针)一层的数据结构,可以存储的数据为:16 条数据;二层的数据结构,可以存储的数据为:1170 * 16 = 18720 条数据;一层的数据结构,可以存储的数据为:1170 * 1170 * 16 = 21902400 条数据;这种数据结构,在MySQL单表中,存储数据超过 1 千万,就已经考虑分表,所以在MySQL中只需要三层B+树结构已经满足使用
指针的大小为: 6 字节
21
20
叶子结点:包含主键值与数据
索引文件 .MYI
叶子结点
地址
4
55
非叶子结点
主键值,例如ID
MyISAM 引擎的叶子结点,里面包含的是主键索引和数据地址
保存数据库表的结构文件内容
假设:主键索引的类型为: bigint bigint:大小为 8 字节
里斯
数据文件 .MYD
地址指向数据
张三
11
14
22
MyISAM 的 B+树
MyISAM引擎的叶子结点 与 InnoDB 引擎的叶子结点保存数据不一样;MyISAM: 数据对应的地址;InnoDB: 数据本身;
页可以存储数据也可以存储键值+指针,在B+树叶子节点存放数据,非叶子节点存放键值+指针
InnoDB存储引擎默认最小存储单元是页,默认一个页的存储大小是16K(可以修改,通过设置参数innodb_page_size)
叶子结点:包含主键值与索引
0 条评论
回复 删除
下一页