MySQL-索引底层实现

MYSQL-索引底层实现

索引数据结构

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

二叉树

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

图片说明

红黑树

hash表

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

B-Tree

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

存储引擎

MyISAM

图片说明

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

InnoDB

图片说明

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

联合索引底层原理

图片说明

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-16 14:00
白火同学:其实你可以了解一下HR在Boss聊天的机制,想赢牌的前提是先会玩牌。 如果HR长时间没有理你,有可能是因为你的消息被其他应聘者的消息给挤到下面了,HR从上到下有可能只看个三四百个人就要到理想数量的简历了,而你恰好没有被看到,时间一长,你的消息在越来越下面。这种情况就需要你自己活跃一下,把消息提上去。 也可能是HR招的合适的人选了,但会一直挂着岗位,为了省重新开招聘岗位的钱,方便后面随时修改招聘要求。 当然也可能是HR吃饱了没事耍你玩,要了你的简历又不看,就看你自己怎么理解了。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务