存储引擎:主要是MyIssam 和InnoDb
MyIsam 一个表用三个文件定义
- frm 存放表结构定义
- myd 表数据
- myi 表索引 采用BTree 存储结构,数据存放在叶节点
Innodb 支持事务,实现了行级锁
- frm 存放表结构定义
- 表数据和索引一起存放
索引实现原理,存储结构,和不同索引间区别
BTree(数据存放在叶节点,根节点到叶节点距离相等)、RTree、Full-Text、Hash
InnoDb存在两种索引:主键索引和secondary Index ,从根结点到叶节点相同。
主键索引叶节点存放实际数据,不仅仅是主键数据还有其他字段数据,按照主键安全键值有序排序
secondary Index 叶节点存放索引键信息,还存放Innodb中主键键值信息
MyISSAM 同secondary Index 存储结构基本相同,叶节点存放索引信息外,存放直接定位到数据文件中响应数据行信息,不存放主键键值信息
Hash 索引主要存在Memary 存储引擎当中,索引值通过hash 运算,得到hash 值存放到hash 表,如果得到值是非唯一,是以链表存在,只能进行等于,不等于,In 运算,无法利用索引来避免排序,不能避免全表扫描