MySQL索引结构B+树

数据结构图示例网站:Data Structure Visualization

索引数据结构:

        二叉树

        红黑树

        Hash表

        B-Tree

B-Tree,特点:(每个节点都存储key和data,叶子节点指针为null)

        1、叶节点具有相同的深度,叶节点的指针为空

        2、所有索引元素不重复

        3、节点中的数据索引从左到右递增排列

如下图:

 B+树,特点:只有叶子节点存储data,非叶子节点的数据是冗余的,叶子节点包含了所有数据,叶子节之间有指针指向相邻叶子节点

        1、非叶子节点不存储data,只存储索引(冗余),可以放更多的索引

        2、叶子节点包含所有索引字段

        3、叶子节点用指针连接,提高区间访问的性能

如下图:

 

hash结构:

        1、对索引的key进行一次hash计算即可定位出数据存储的位置,很多时候效率高于B+树

        2、仅能满足=、IN,不支持范围查询

        3、hash冲突问题

 聚集索引和非聚集索引:

        非聚集索引,如MyISAM,索引文件和数据文件是分离的,分开存放;

        聚集索引,如InnoDB,索引文件和数据文件是一起存放的;

区别:

聚集索引非聚集索引
一个表有几个只能有一个(包含了数据)可以有多个
存储的数据物理上连续逻辑上连续
插入数据速度慢(数据存储的排序)

使用非聚集查询的时候,可以的话就避免二次查询(回表),可大大提升性能

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值