存储引擎的某些共性
mysql的众多存储引擎都是可插拔的,基于表的插件式引擎。具体场景可以根据业务特点在 Create table DDL中指定具体引擎。
mysql5.5以后采用innodb作为默认引擎。
InnoDB是如何存储表数据的
√ InnoDB其实是使用页为基本单位来管理存储空间的,默认的页大小为16KB(Linux页默认4KB)。
√对于InnoDB存储引擎来说,每个索引都对应着一棵B+树,该B+树的每个节点都是一个数据页,数据页之间不 必要是物理连续的,因为数据页之间有双向链表来维护着这些页的顺序
√lnnoDB的聚簇索引的叶子节点存储了完整的用户记录,也就是所谓的索引即数据、数据即索引。
系统表空间(system tablespace)
√系统表空间可以对应文件系统上一个或多个实际的文件,默认,InnoDB会在数据目录下创建一个名为ibdata1
独立表空间(file-per-table tablespace)
在MySQL5.6.6以及之后的版本中,InnoDB默认为每一个表建立一个独立表空间
数据文件包括frm、.ibd
由参数innodb_file_per_table控制