Mysql之InnoDB存储引擎的逻辑存储结构

1.官网

https://dev.mysql.com/doc/refman/5.7/en/innodb-disk-management.html
在这里插入图片描述
https://dev.mysql.com/doc/refman/5.7/en/innodb-file-space.html
在这里插入图片描述

1.MySQL 的存储结构分为 5 级:表空间、段、簇、页、行

在这里插入图片描述

2.tablespace [表空间]

1.表空间可以看做是InnoDB 存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。
2.表空间分为:系统表空间、独占表空间、通用表空间、 临时表空间、Undo 表空间。

参考 下面的Mysql InnoDB 磁盘存储结构中对表空间的介绍
https://blog.csdn.net/u014636209/article/details/103989376

3.segment [段]

1.创建一个索引会创建两个段,一个是索引段:leaf node segment,一个是数据段: non-leaf node segment。
2. 段的数量是由索引的数量决定的,也就是说,一个表的段数,就是索引的个数乘以 23. 段的空间大小是可以无限扩展的;

在这里插入图片描述

4.extent [簇或者成为区]

1.一个段(Segment)又由很多的簇(也可以叫区)组成,每个区的大小是 1MB(64 个连续的页)。 
2.extent的个数扩展是由段的内存大小去决定的;

5.page [页]

1.为了高效管理物理空间,对簇进一步细分,就得到了页。
2.簇是由连续的页(Page) 组成的空间,默认每个页的存储大小为16k(1024*16=16384 byte字节),一个簇中有 64 个连续的页。 
 (1MB/16KB=64)。这些页面在物理上和逻辑上都是连续的。

查看当前每个页的存储大小

show VARIABLES like '%innodb_page_size%'

在这里插入图片描述

1.一个表空间最多拥有 2^32 个页,默认情况下一个页的大小为 16KB,也就是说一个 表空间最多存储 64TB 的数据。

6.row [行]

InnoDB 存储引擎是面向行的(row-oriented),也就是说数据的存放按行进行存放。

查看数据和索引存储占用的磁盘空间大小

select CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'MB') AS data_len,
CONCAT(ROUND(SUM(INDEX_LENGTH/1024/1024),2),'MB') as index_len 
from information_schema.TABLES where table_schema='gp-mysql' and table_name='user_innodb';

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东山富哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值