在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

InnoDB中逻辑存储结构的示例分析

160次阅读
没有评论

共计 3659 个字符,预计需要花费 10 分钟才能阅读完成。

这篇文章主要为大家展示了“InnoDB 中逻辑存储结构的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“InnoDB 中逻辑存储结构的示例分析”这篇文章吧。

InnoDB 逻辑存储结构

在 InnoDB 中我们创建的表还有对应的索引数据都存储在扩展名为.ibd 的文件中,这个文件路径可以先通过查 mysql 变量 datadir 来得到,然后进入对应的数据库名目录,会看到很多 ibd,文件名就是表名,这里有两种类型的表空间,共享表空间(或者叫系统表空间)和独立表空间文件。

对于共享表空间,所有的表数据和相应索引都存放在这里,而独立表空间,就是每个表的数据和索引都存放在一个单独的 ibd 文件中,在目前的 MySQL 版本中,默认都是使用的独立表空间。

共享表空间文件名可以通过 innodb_data_file_path 得到,

mysql  show variables like  innodb_data_file_path 
+-----------------------+------------------------+
| Variable_name | Value |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
+-----------------------+------------------------+
1 row in set (0.00 sec)

独立和共享表空间可以通过 innodb_file_per_table 切换,如果启用了他,那么每张表内的数据就单独放在一个表空间文件中,还需要注意,每个表的表空间只存储数据、索引,其他类的数据,如回滚信息、系统事务信息、二次写缓冲仍存储在原始共享表空间中。

下面语句可以查看 innodb_file_per_table 的状态。

mysql  show variables like  %innodb_file_per_table 
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.01 sec)

修改 innodb_file_per_table 状态

set global innodb_file_per_table=0;

如果在 innodb_file_per_table 等于 0 的情况下,也就是 OFF 关闭情况下,创建的表都会存放的系统共享的表空间中,比如下面的列子。

1. 创建 database_1 数据库
mysql  create database database_1;
Query OK, 1 row affected (0.02 sec)
2.  当前状态
mysql  show variables like  %innodb_file_per_table 
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.01 sec)
3.  创建表
mysql  create table t1(id int(11));
Query OK, 0 rows affected, 1 warning (0.05 sec)

5.  关闭 innodb_file_per_table 后在创建表 mysql  set global innodb_file_per_table=0; Query OK, 0 rows affected (0.01 sec) mysql  create table t2(id int(11)); Query OK, 0 rows affected, 1 warning (0.05 sec) 6.  查看 ibd 文件 root@hxl-PC:/var/lib/mysql/database_1# ls t1.ibd

可以发现在关闭后,没有创建新的 ibd 文件。

表空间又由段 (segment)、区(extent)、页(page) 组成,引入一张网络图片。

1. 段

表空间由段组成,他是一个逻辑结构,用来管理物理文件,常见的段有数据段、索引段、回滚段,每个段由 N 个区和 32 个零散的页组成。

InnoDB 存储引擎表是索引组织的,所以数据就是索引,索引就是数据,通常情况下,创建一个索引的同时就会创建两个段,分别为非叶子节点和叶子节点段。

2. 区

区是由连续的页组成的空间,无论如何,每个区的大小都是 1MB。为了保证区域内页面的连续性,InnoDB 存储引擎一次从磁盘申请 4 - 5 个区域。默认情况下,InnoDB 存储引擎的页面大小为 16KB,也就是有有 64 个连续页面,16*64=1024=1M。

InnoDB1.2.x 版本增加了参数 innodb_page_size,这个参数允许设置默认页面大小为 4K、8K,

3. 页

页是 InnoDB 存储引擎磁盘管理的最小单位,默认 16kb,可以通过参数 innodb_page_size 设置页大小为 4K、8K、16K。InnoDB 为了实现不同的目的而设计了很多种页,InnoDB 存储引擎中常见的页面类型有:

数据页

undo 页面

系统页面

事物数据页面(交易系统页面)

插入缓冲位图页

插入缓冲区空闲列表页

未压缩的二进制大对象页面

压缩二进制大对象页面

可以通过以下命令查看大小。

mysql  show status like  innodb_page_size 
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)
mysql

下面是 InnoDB 数据页结构,它由七部分组成。

名称作用 File header 记录了页头的一些信息,cheksum、Ppervious 和 next page 的记录 Page header 记录了页的状态信息和存储信息、首个记录的 positionInfimum+ supremumInnoDB 每个数据页有两个虚拟行记录,用来限定记录边界 Row records 实际存储的行数据信息 Free space 空闲空间,同样是链表结构 Page directory 存放了记录的相对位置 File trailerinnodb 利用它来保证页完整地写入磁盘 4. 行

InnoDB 存储引擎是面向行的,页里面又记录着行记录的信息,也就是数据是按照行存储的。行记录数据又是按照行格式进行存放的。每个页存放的行记录也是有硬性定义的,最多允许存放 16KB/2-200 行,也就是 7992 行。

InnoDB 存储引擎有两种文件格式,一种叫 Antelops, 另外一种叫 Barracuda。

在 Antelope 文件格式下,有 compact 和 redundant 两种行记录格式。

在 Barracuda 文件格式下,有 compressed 和 dynamic 两种行记录格式。

可以通过以下方式查看当前格式,其中 Row_format 就是对应行格式存储类型。

mysql  show table status \G;
*************************** 1. row ***************************
 Name: t1
 Engine: InnoDB
 Version: 10
 Row_format: Dynamic
 Rows: 15
 Avg_row_length: 1092
 Data_length: 16384
Max_data_length: 0
 Index_length: 0
 Data_free: 0
 Auto_increment: NULL
 Create_time: 2021-08-24 09:43:29
 Update_time: 2021-08-24 14:43:35
 Check_time: NULL
 Collation: utf8mb4_0900_ai_ci
 Checksum: NULL
 Create_options: 
 Comment:

以上是“InnoDB 中逻辑存储结构的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计3659字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 免费精品一区二区三区第35 | 免费无码av片在线观看播放 | 扒开腿狂躁女人爽出白浆 | 好吊妞视频一区二区 | 一本无码人妻在中文字幕免费 | 91精品日本久久久久久牛牛 | 伊人久久大香线蕉久久婷婷 | 天天干天天做天天操 | 福利视频一区二区三区 | 欧美丰满老妇性猛交 | 久久久久久久女国产乱让韩 | 国产欧美另类第一页 | 午夜激情视频在线播放 | 亚洲色大成网站www国产 | 亚洲 小说区 图片区 都市 | 国产精品免费大片 | 国产成人拍精品视频网 | 成人动漫综合网 | 亚州一区二区 | 欧美一级片网 | 欧美成人七十二式性视频教程 | 久久机热这里只有精品 | 无遮挡啪啪摇乳动态图 | 免费观看性欧美大片无片 | 4四虎44虎www在线影院麻豆 | 国偷自产一区二区免费视频 | 免费看美女的网站 | 东北女人啪啪对白 | 亚洲中文字幕久久精品蜜桃 | 日韩美女一区二区三区 | 国产尤物视频在线 | 欧美亚洲第一区 | 人人添人人澡人人澡人人人人 | 午夜神马福利免费官方 | 欧洲精品免费一区二区三区 | 深夜福利在线播放 | 97久久精品亚洲中文字幕无码 | 亚洲av永久无码嘿嘿嘿 | 精品无码成人片一区二区98 | 色噜噜狠狠综曰曰曰 | 九九热国产视频 |