MySQL B + Tree索引机制的落地

MySQL B + Tree索引机制的落地
插达式的存储引擎 MySQL最大的优势
索引Indexes是有存储引擎实现的

MySQL5.5版本之前 默认的存储引擎是MyISAM引擎
5.5版本之后 InnoDB成了默认的存储引擎

InnoDB

InnoDB会创建两个文件 一个骨架文件(定义一个表的骨架 存放字段的长度的什么的)
MySQL B + Tree索引机制的落地
MySQL B + Tree索引机制的落地
有且只有一个主键也就只有一个聚集索引

查询除了主键别的字段 需要建立一个辅助索引 查询到主键 然后进行一次回表
回表也就是根据查询到的主键 到主键索引里面再进行一次查询
索引MySQL推荐使用递增的主键作为索引
因为使用别的字段当做主键 会使表的结构调整的过于频繁
MySQL B + Tree索引机制的落地

MyISAM

会创建三个文件 一个骨架文件
MySQL B + Tree索引机制的落地
MySQL B + Tree索引机制的落地
MYD date文件
MYI index文件 存储B +数的结构 数据区存放磁盘指针
索引和date文件分离
先遍历index文件 找数据对应的磁盘指针