InnoDB存储引擎

 

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

 

特点 1、DML操作遵循ACID模型,支持事务; DML操作的是数据的更删改; ACID是数据的四大特性,即原子性、一致性、隔离性、持久性 2、行级锁,提高并发访问性能; 3、支持外键foreign key约束,保证数据的完整性和正确性;

 

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

 

参数:innodb_file_per_table 参数是决定多张表共用一个共享表空间,还是每张个表都对应一个表空间文件 在MySQL8.0版本中,这个开关是打开的,即代表每一张表都对应一个表空间文件

 

逻辑存储结构

  1. TableSpece:表空间。存放例如ibd后缀的文件 在一个表空间中会包含若干个Segment段
  2. Segment:段。在一个Segment段中包含若干个Extent区
  3. Extent:区。一个区包含若干个Page页。一个Extent区的大小是固定的,为1M。一个区中包含64个页
  4. Page:页,有数据页、索引页。一个Page页包含若干个Row行。是磁盘操作的最小单。一个Page页的大小是固定的,为16K
  5. Row:行。行就是我们存储在表里面具体的一行行的数据。一个Row行包含如下 (1)Trx id:最后一次操作事务的id (2)Roll pointer:指针 (3)col1:字段1 (4)col2:字段2 (5)col3:字段3 (6)......