mysql索引

2021-05-19  本文已影响0人  何何与呵呵呵

B-树结构

image.png

1.叶子节点具有相同的高度,叶子节点的指针为空
2.节点中的数据索引从左到右递增排列
3.所有节点都存储data

B+树结构

image.png

1.非叶子节点不存储数据
2.叶子节点包含所有索引字段
3.叶子节点之间通过索引连接,提高查询性能。

Hash表

image.png

1.对索引求hash值就能查到对应的buket
2.很多时候查询效率比tree快,但仅能满足=,in的查找
3.hash冲突问题

MyISAM存储引擎

image.png

非聚集索引,索引和文件分离

InnoDB存储引擎


image.png

1.数据本身按B+树组织的索引结构文件
2.聚集索引叶子节点包含所有数据
3.为什么推荐使用整形的自增Id?你不创建mysql自动帮你创建,增加数据库的压力,整形可以节省空间而且自增ID保证主数据递增而且无重复。其次提高范围查找效率,增加排序效率,提高扫表能力,顺序访问。如果主键是非自增 id,为了确保索引有序,mysql 就需要将每次插入的数据都放到合适的位置上。
4.为什么非主键索引叶子节点保存的是主键id?不应考虑数据的一致性,而且可以节省索引的空间。

联合索引

image.png
上一篇下一篇

猜你喜欢

热点阅读