MySQL的InnoDB引擎结构图
2022-05-20 11:00:37 1 举报
MySQL的InnoDB引擎结构图、InnoDB的B+树结构
作者其他创作
大纲/内容
P2
5
18
23
指针
16K
B+树的上下结点,通过链表串联,能够更好的支持范围查询
页
InnoDB 存储引擎
D
12
Name
89
Age
P3
9
链表
ID
索引值:P1
误解-1: 为什么很多人认为B+树,只有三层结构呢?
P1
王武
8
Data:行数据
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+树结构已经满足使用
InnoDB中指针的大小为: 6 字节
21
20
叶子结点:包含主键值与数据
叶子结点
数据
4
InnoDB的所有数据文件(后缀为ibd的文件)它的大小始终是16K的整数倍
55
非叶子结点
主键值,例如ID
InnoDB 引擎的叶子结点,里面包含的是主键索引和数据
假设:主键索引的类型为: bigint bigint:大小为 8 字节
里斯
......
张三
11
14
22
InnoDB 的 B+树
假设:一个主键索引对应的数据大小为: 1K
页可以存储数据也可以存储键值+指针,在B+树叶子节点存放数据,非叶子节点存放键值+指针
InnoDB存储引擎默认最小存储单元是页,默认一个页的存储大小是16K(可以修改,通过设置参数innodb_page_size)
叶子结点:包含主键值与索引
0 条评论
下一页