MySQL-索引底层实现

MYSQL-索引底层实现

索引数据结构

索引是帮助MySQl高效获取数据的排好序数据结构

二叉树

二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分,并且左子树小于叶子节点,右子树都大于叶子节点。

图片说明

红黑树

hash表

查找单个数据速度快,但进行范围查找时,效果不好。

B-Tree

叶节点具有相同的深度,叶节点的指针为空。
所有索引元素不重复。
节点中的数据索引从左到右递增排序。
图片说明

存储引擎

MyISAM

图片说明

MyISAM 是非聚集索引(索引文件和数据文件是分离的)
.frm 表定义,是描述表结构的文件。
.MYD 数据信息文件,是表的数据文件。
.MYI 索引信息文件,是表数据文件中任何索引的数据数。

InnoDB

图片说明

InnoDB 是聚集索引(索引和数据放在一起)
.frm 表定义,表结构文件
.ibd 表数据和索引的文件,该表的索引的每个非叶子节点存储索引,叶子节点存储索引和索引对应的数据。

联合索引底层原理

图片说明

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务