深圳网站建设价格是多少,山西省和城乡建设厅网站,中森网站建设公司,建设工程造价网站InnoDB
MySQL存储引擎是基于表的#xff0c;也就是说每张表可以选择不同的存储引擎。 InnoDB存储引擎的表是索引组织的#xff0c;也就是数据即索引。
存储引擎文件
InnoDB引擎会包含RedoLog重做日志文件和TableSpace表空间文件。
表空间文件
默认表空间文件#xff08…InnoDB
MySQL存储引擎是基于表的也就是说每张表可以选择不同的存储引擎。 InnoDB存储引擎的表是索引组织的也就是数据即索引。
存储引擎文件
InnoDB引擎会包含RedoLog重做日志文件和TableSpace表空间文件。
表空间文件
默认表空间文件共享表空间一个10MB的ibdata1的文件该文件能够自动增长。 共享表空间存放撤销日志UndoLog、系统事务信息、双写缓冲
文件格式
frm文件存储表结构信息ibd文件存储当前表的数据、索引、插入缓冲
参数配置
innodb_data_file_path: 指定默认表空间文件地址
innodb_file_per_table: 是否为每个表单独产生一个表空间RedoLog文件
存储引擎默认重做日志文件ib_logfile0和ib_logfile1。
重做日志记录了InnoDB的事务日志可以用于恢复日志断电表数据的组织 主键问题
每张表必须要有主键按照如下的三种方法选取主键
显式定义主键选择非空唯一索引做主键自动创建6字节大小的指针主键
表空间tablespace
表空间用于存放表的数据、索引和插入缓冲。
段segment
表空间由各个段组成常见的有数据段、索引段、回滚段。 数据段是B树的叶节点段索引段是B树的非叶节点段。
区extent
区是64个连续的页组成的。1个区大小16KB*64 1MB。
页page
页是InnoDB磁盘管理的最小单位大小为16KB。 常见的页类型
数据页Undo页系统页事务数据页插入缓冲位图页插入缓冲空闲列表页未压缩的二进制大对象页压缩的二进制大对象页
行
InnoDB是面向行的即数据时按行存放的也有列数据库如Hbase。
InnoDB物理存储结构
行记录格式
Compact格式
于MySQL5.0引入 行的格式如下
变长字段长度列表按列逆序NULL标志位记录头信息列1数据列2数据,...,事务id回滚指针RowID如果没有主键Redundant格式
MySQL5.0之前的版本用于向前兼容 行格式如下
字段长度偏移列表按列逆序记录头信息列1数据列2数据...锁
事务
参考文献
【1】MySQL技术内幕 InnoDB存储引擎 姜承尧 【2】MySQL技术内幕 第五版 Paul DuBois