MySQL存储引擎是基于表的,也就是说每张表可以选择不同的存储引擎。
InnoDB存储引擎的表是索引组织的,也就是数据即索引。
InnoDB引擎会包含RedoLog重做日志文件和TableSpace表空间文件。
默认表空间文件(共享表空间):一个10MB的ibdata1的文件,该文件能够自动增长。
共享表空间存放:撤销日志UndoLog、系统事务信息、双写缓冲
参数配置
innodb_data_file_path: 指定默认表空间文件地址
innodb_file_per_table: 是否为每个表单独产生一个表空间
存储引擎默认重做日志文件:ib_logfile0和ib_logfile1。
重做日志:记录了InnoDB的事务日志,可以用于恢复日志(断电)
每张表必须要有主键,按照如下的三种方法选取主键
表空间用于存放表的数据、索引和插入缓冲。
表空间由各个段组成,常见的有数据段、索引段、回滚段。
数据段是B+树的叶节点段,索引段是B+树的非叶节点段。
区是64个连续的页组成的。1个区大小:16KB*64 = 1MB。
页是InnoDB磁盘管理的最小单位,大小为16KB。
常见的页类型:
InnoDB是面向行的,即数据时按行存放的(也有列数据库如Hbase)。
变长字段长度列表(按列逆序),NULL标志位,记录头信息,列1数据,列2数据,...,事务id,回滚指针,RowID(如果没有主键)
字段长度偏移列表(按列逆序),记录头信息,列1数据,列2数据...
【1】MySQL技术内幕 InnoDB存储引擎 姜承尧
【2】MySQL技术内幕 第五版 Paul DuBois
上一篇:方差分析与单因素方差分析
下一篇:pyqt5环境搭建