千家信息网

Mysql选用B+树的原因是什么

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,Mysql选用B+树的原因是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。先从数据结构的角度来答。应该知道B-树和B
千家信息网最后更新 2024年11月30日Mysql选用B+树的原因是什么

Mysql选用B+树的原因是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

先从数据结构的角度来答。

  • 应该知道B-树和B+树最重要的一个区别就是

    • B+树只有叶节点存放数据,其余节点用来索引,

    • 而B-树是每个索引节点都会有Data域。

  • 这就决定了B+树更适合用来存储外部数据,也就是所谓的磁盘数据

  • 从Mysql(Inoodb)的角度来看,

    • B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,

    • 所以为了减少内存的占用,索引也会被存储在磁盘上。

  • 那么Mysql如何衡量查询效率呢?

    • B+树所有的Data域在叶子节点,

    • 这样遍历叶子节点就能获得全部数据,这样就能进行区间访问啦。

    • 一般来说都会进行一个优化,就是将所有的叶子节点用指针串起来。

    • 说白了增加了磁盘IO次数

    • (磁盘IO一次读出的数据量大小是固定的,单个数据变大,每次读出的就少,IO次数增多,一次IO多耗时啊!),

    • 磁盘IO次数,B-树(B类树)的特定就是每层节点数目非常多,层数很少,目的就是为了就少磁盘IO次数,

    • 当查询数据的时候,最好的情况就是很快找到目标索引,然后读取数据,使用B+树就能很好的完成这个目的,

    • 但是B-树的每个节点都有data域(指针),这无疑增大了节点大小,

    • 而B+树除了叶子节点其它节点并不存储数据,节点小,磁盘IO次数就少。

    • 这是优点之一。

    • 另一个优点是什么,

    • 至于MongoDB为什么使用B-树而不是B+树,

      • 它并不是传统的关系性数据库,而是以Json格式作为存储的nosql,

      • 目的就是高性能,高可用,易扩展。

      • 首先它摆脱了关系模型,

      • 其次Mysql由于使用B+树,数据都在叶节点上,每次查询都需要访问到叶节点,

      • 而MongoDB使用B-树,所有节点都有Data域,

      • 上面所述的优点2需求就没那么强烈了,

      • 只要找到指定索引就可以进行访问,无疑单次查询平均快于Mysql(但侧面来看Mysql至少平均查询耗时差不多)。

      • 可以从它的设计角度来考虑,

    • 总体来说,Mysql选用B+树和MongoDB选用B-树还是以自己的需求来选择的。

    看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

    节点 数据 索引 磁盘 就是 次数 查询 叶子 存储 优点 目的 角度 需求 一般来说 大小 指针 数据库 帮助 原因 清楚 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 办公网络安全总结 陕西省通信管理局网络安全处 戴尔服务器查看硬件状态 数据库官网试题 专用服务器闪退 网络安全和网上信息安全保障方案 正版重庆联通服务器托管虚拟主机 数据库创建索引锁表吗 向日葵连接服务器的条件是 手机银行无法登陆显示服务器异常 金戈邦互联网科技公司 无线网络技术无线传感器算法 网络安全与技术机密性思维导图 正规的win10服务器租用公司 数据库join的意思 石景山区品牌软件开发概况 创建数据库 mysql 天龙八部 数据库 网络安全黑板报图片 四字网络安全用语 mc服务器小怎么办 浙江黑石华贸互联网科技有限公司 恐惧饥荒服务器会话失败 网络安全行业项目流程 知网数据库逻辑连接词 浙江通信网络技术收费标准 蚂蚁金服数据库比赛 宁夏联想服务器维修调试哪家便宜 怎样将表单提交到数据库 青少年网络安全文章
    0