innodb:
数据库引擎之一,目前是mysql的默认引擎
支持事务transaction:
事务的四大特性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability);commit或者rollback
行级锁和表级锁;
行粒度:
读锁:共享锁,事务对一条记录进行读取
写锁:互斥锁,事务对一条记录进行修改
表粒度:事务对多条记录加读锁或者写锁
聚集索引:
在Innodb中,Mysql中的数据是按照主键的顺序来进行磁盘物理存储的(没有主键,系统会按照一定规则显示或者隐式生成主键),然后根据主键构建一颗B+树,该树即为聚集索引,B+树的叶子节点都是一条完成记录的数据节点。
如果我们根据聚集索引进行查询,这时候查询的次数就是树的高度,找到叶子节点就找到了对应的完成记录;
磁盘是按照页为最小单位进行数据存储,查到对应的记录的时候,读入到内存的不是该记录,而是包含该记录的整页数据;
非聚集索引:
聚集之外的所有索引都称为非聚集索引,也称之为辅助索引;
每一个非聚集索引都对应一颗独立的B+树,所以多个索引就会有多颗B+树;
非聚集索引的查找过程,非聚集索引的叶子节点不是完整的数据节点,而是记录该记录所在的主键索引的叶子节点,也就是说非聚集索引查找过程:找到索引叶子结点--根据叶子节点查询主键索引--根据主键索引找到数据记录。
物理存储文件格式:
.frm文件:每个表对应一个frm文件,该问价记录该表的定义
.idb文件:数据文件