php 平衡二叉树,关于php:MySQL的索引为什么是B而不是平衡二叉树

数据库为什么应用B+树?

前言

讲到索引,第一反馈必定是能进步查问效率。例如书的目录,想要查找某一章节,会先从目录中定位。如果没有目录,那么就须要将所有内容都看一遍能力找到。

索引的设计对程序的性能至关重要,若索引太少,对查问性能受影响;而如果索引太多,则会影响增/改/删等的性能。

知识点

MySQL中个别反对以下几种常见的索引:

B+树索引

全文索引

哈希索引

咱们明天重点来讲下B+树索引,以及为什么要用B+树来作为索引的数据结构。

B+树索引并不能间接找到具体的行,只是找到被查找行所在的页,而后DB通过把整页读入内存,再在内存中查找。

1. 与二叉树相比

二叉树相比于程序查找确实缩小了查找次数,然而在最坏状况下,二叉树有可能进化为程序查找。而且就二叉树自身来说,当数据库的数据量特地大时,其层数也将特地大。二叉树的高度个别是log_2^n,B树的高度是log_t^((n+1)/2) + 1,其高度约比B树大lgt倍。n是节点总数,t是树的最小度数。

2. 与B树相比

B树在进步IO性能的同时,并没与解决元素遍历时效率低下的问题,正是为了解决这个问题,B+数应运而生。B+数只需遍历叶子节点即可实现整棵树的遍历,而B树必须应用中序遍历按序扫库,B+树反对范畴查问十分不便。这才是数据库选用B+树的次要起因。

另外,最初说一下,并不是说B+树就比B树好,有很多基于频率的搜寻是选用B树,越频繁query的结点越往根上走,前提是须要对query做统计,而且要对key做一些变动。

无论是B树还是B+树因为前边几层重复query,因而早已被加载入内存,不会呈现读磁盘IO。个别启动的时候,就会被动换入内存。在内存中B+树并没有劣势,只有在磁盘中B+树的威力能力浮现。

采纳B+树的索引构造长处:

B+树的高度个别为2-4层,所以查找记录时最多只须要2-4次IO,绝对二叉均衡树曾经大大降低了。

范畴查找时,能通过叶子节点的指针获取数据。例如查找大于等于3的数据,当在叶子节点中查到3时,通过3的尾指针便能获取所有数据,而不须要再像二叉树一样再获取到3的父节点。

总结:

1)二叉查找树(BST):解决了排序的根本问题,然而因为无奈保障均衡,可能进化为链表

2)均衡二叉树(AVⅥL):通过旋转解决了均衡的问题,然而旋转操作效率太低

3)红黑树:通过舍弃严格的均衡和引入红黑节点,解决了AⅥ旋转效率过低的问题,然而在磁盘等场景下,树依然太高,IO次数太多

4)B树:通过将二叉树改为多路均衡查找树,解决了树过高的问题

5)B+树:在B树的根底上,将非叶节点革新为不存储数据的纯索引节点,进一步升高了树的高度;此外将叶节点应用指针连接成链表,范畴查问更加高效。

仅做学习应用,权侵删,禁止转发

参考:

https://blog.csdn.net/qq_3803…

https://www.cnblogs.com/tongo…

https://www.bilibili.com/read…

http://www.coder55.com/questi…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本系统的研发具有重大的意义,在安全性方面,用户使用浏览器访问网站时,采用注册和密码等相关的保护措施,提高系统的可靠性,维护用户的个人信息和财产的安全。在方便性方面,促进了校园失物招领网站的信息化建设,极大的方便了相关的工作人员对校园失物招领网站信息进行管理。 本系统主要通过使用Java语言编码设计系统功能,MySQL数据库管理数据,AJAX技术设计简洁的、友好的网址页面,然后在IDEA开发平台中,编写相关的Java代码文件,接着通过连接语言完成与数据库的搭建工作,再通过平台提供的Tomcat插件完成信息的交互,最后在浏览器中打开系统网址便可使用本系统。本系统的使用角色可以被分为用户和管理员,用户具有注册、查看信息、留言信息等功能,管理员具有修改用户信息,发布寻物启事等功能。 管理员可以选择任一浏览器打开网址,输入信息无误后,以管理员的身份行使相关的管理权限。管理员可以通过选择失物招领管理,管理相关的失物招领信息记录,比如进行查看失物招领信息标题,修改失物招领信息来源等操作。管理员可以通过选择公告管理,管理相关的公告信息记录,比如进行查看公告详情,删除错误的公告信息,发布公告等操作。管理员可以通过选择公告类型管理,管理相关的公告类型信息,比如查看所有公告类型,删除无用公告类型,修改公告类型,添加公告类型等操作。寻物启事管理页面,此页面提供给管理员的功能有:新增寻物启事,修改寻物启事,删除寻物启事。物品类型管理页面,此页面提供给管理员的功能有:新增物品类型,修改物品类型,删除物品类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值