Hash索引、平衡二叉树、B树、B+树都有哪些特征区别

本文详细介绍了MySQL中的B树、B+树、HASH索引以及平衡二叉树的区别,强调了B+树的选择原因,并提供了索引动态插入和查找过程的可视化链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先思考,mysql中索引采用的是什么?B树还是B+树?为什么?

        

        B树和B+树都是多叉树,区别在于B+树的数据全存在于叶子节点,而B树非叶子节点也会存储数据。

        MYSQL采用的是B+树,因为B树非叶子节点也会存储数据,所以会有数据回旋查找的问题。

两者的相同点:一个节点可以存储多个值。

       

 2、HASH索引

hash值是无序的不能进行范围查找。如果值不一样但是hash值是一样的,这样就需要一个一个的去匹配会很慢

 

3、平衡二叉树

两个树杈子分为(左子树、右子树)它的绝对值不会大于1,随着数据量的增加,二叉树越高速度越慢

 4、B树

一个节点可以有多个值,类似于目录,B树也存在回旋查找的问题

 5、B+树

由非叶子节点和叶子节点组成,非叶子节点存储的key,叶子节点既存key也存value,通过单项链表去解决回旋查找的问题,范围查找很高(因为内部在插入的时候索引就是有序的)

 

6、索引动态插入过程以及查找过程的动态图演示过程

Hash索引:Closed Hashing Visualizationicon-default.png?t=N7T8https://www.cs.usfca.edu/~galles/visualization/ClosedHash.html

平衡二叉树:AVL Tree Visualzationicon-default.png?t=N7T8https://www.cs.usfca.edu/~galles/visualization/AVLtree.html

B树:B-Tree Visualization icon-default.png?t=N7T8https://www.cs.usfca.edu/~galles/visualization/BTree.html

B+树:B+ Tree Visualization icon-default.png?t=N7T8https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值