【MySQL】- Btree、B+tree有何不同

Btree、B+tree有何不同

写在前面

存储格式采用的是K-V格式,这种格式的有hash和树,树又分为二叉树、BST、AVL、红黑树,innodb存储引擎采用的是B+tree,今天来看一下Hash和树的区别以及 Btree、B+tree有何不同;

哈希表

哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构;也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表;
在这里插入图片描述

  • 数组:寻址容易,插入和删除困难
  • 链表:寻址困难,插入和删除容易

散列表采用的是数组+链表的形式,数组的每个成员包括一个指针,指向一个链表的头,链表可能为空,也可能元素很多,我们根据元素的一些特征把元素分配到不同的链表中去,也是根据这些特征,找到正确的链表,再从链表中找出这个元素;

劣势

  • 需要好的hash算法,容易发生hash碰撞、hash冲突、散列不匀均-如上图;
  • 无序,进行范围查找的时候,需要挨个找,效率较低;

未完待续;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值