深入了解存储引擎存储结构

存储引擎:主要是MyIssam 和InnoDb

MyIsam 一个表用三个文件定义
  1. frm 存放表结构定义
  2. myd 表数据
  3. myi 表索引 采用BTree 存储结构,数据存放在叶节点

Innodb 支持事务,实现了行级锁
  1. frm 存放表结构定义
  2. 表数据和索引一起存放

索引实现原理,存储结构,和不同索引间区别
BTree(数据存放在叶节点,根节点到叶节点距离相等)、RTree、Full-Text、Hash

InnoDb存在两种索引:主键索引和secondary Index ,从根结点到叶节点相同。
     主键索引叶节点存放实际数据,不仅仅是主键数据还有其他字段数据,按照主键安全键值有序排序
     secondary Index 叶节点存放索引键信息,还存放Innodb中主键键值信息

MyISSAM 同secondary Index 存储结构基本相同,叶节点存放索引信息外,存放直接定位到数据文件中响应数据行信息,不存放主键键值信息

Hash 索引主要存在Memary 存储引擎当中,索引值通过hash 运算,得到hash 值存放到hash 表,如果得到值是非唯一,是以链表存在,只能进行等于,不等于,In 运算,无法利用索引来避免排序,不能避免全表扫描

你可能感兴趣的:(深入了解存储引擎存储结构)