mysql的InnoDB存储引擎

介绍:InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的
MySQL 存储引擎。

特点:支持事务、行级锁、外键

文件:xxx.ibd是表空间文件,其中的xxx代表表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm-早期的 、sdi-新版的)、数据和索引,

早起在表结构存在frm上,8.0版本后存在sdi这个数据字典当中,而sdi又融入到ibd表空间文件当中。

参数:innodb_file_per_table,决定了到底是多张表共享一个表空间呢,还是说每一个表都对应一个表空间文件。

目前mysql8.0默认该值是:NO,代表每一个表都对应一个表空间文件

programData/Mysql/Mysql Server 8.0/Data,每一个idb代表一个表的(表结构、数据、索引)

命令:ibd2sdi account.ibd

逻辑存储结构

Tablespace包含若干个Segment段,而在一个Segment段当中又会包含Extent区,针对一个区当中又包含若干个Page页(索引页、数据页),再继续,一个页当中又会包含若干个Row行(就是表结构当中存储的一行一行的数据) ,

存储在页当中的。而Row又包含以下几个信息:Trd id最后一次操作事务的id、Roll Point指针、一个一个的字段column。page页是磁盘操作的最小单元,一个区的大小是1M,一个页的大小是16k,意味着一个区可以包含64个页。

  

posted @ 2023-03-02 17:21  xycccode  阅读(20)  评论(0编辑  收藏  举报