0
点赞
收藏
分享

微信扫一扫

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

SDKB英文 2022-07-13 阅读 85


文章目录

  • ​​1.官网​​
  • ​​2.tablespace [表空间]​​
  • ​​3.segment [段]​​
  • ​​4.extent [簇或者成为区]​​
  • ​​5.page [页]​​
  • ​​6.row [行]​​

1.官网

​​https://dev.mysql.com/doc/refman/5.7/en/innodb-disk-management.html​​

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


​​https://dev.mysql.com/doc/refman/5.7/en/innodb-file-space.html​​

Mysql之InnoDB存储引擎的逻辑存储结构_表空间_02

1.MySQL 的存储结构分为 5

Mysql之InnoDB存储引擎的逻辑存储结构_数据_03

2.tablespace [表空间]

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

参考 下面的Mysql InnoDB 磁盘存储结构中对表空间的介绍

3.segment [段]

1.创建一个索引会创建两个段,一个是索引段:leaf node segment,一个是数据段: non-leaf node segment。
2. 段的数量是由索引的数量决定的,也就是说,一个表的段数,就是索引的个数乘以 2
3.

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

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%'

Mysql之InnoDB存储引擎的逻辑存储结构_表空间_05

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';

Mysql之InnoDB存储引擎的逻辑存储结构_数据_06


举报

相关推荐

0 条评论