【mysql innodb索引结构B+树】

为什么Mysql中Innodb的索引结构采取B+树?

B树

B树的两个明显特点

树内的每个节点都存储数据
叶子节点之间无指针相邻

B+树

B+树的两个明显特点

数据只出现在叶子节点
所有叶子节点增加了一个链指针

总结:
(1)B树的树内存储数据,因此查询单条数据的时候,B树的查询效率不固定,最好的情况是O(1)。我们可以认为在做单一数据查询的时候,使用B树平均性能更好。但是,由于B树中各节点之间没有指针相邻,因此B树不适合做一些数据遍历操作。

(2)B+树的数据只出现在叶子节点上,因此在查询单条数据的时候,查询速度非常稳定。因此,在做单一数据的查询上,其平均性能并不如B树。但是,B+树的叶子节点上有指针进行相连,因此在做数据遍历的时候,只需要对叶子节点进行遍历即可,这个特性使得B+树非常适合做范围查询。

因此,我们可以做一个推论:没准是Mysql中数据遍历操作比较多,所以用B+树作为索引结构。而Mongodb是做单一查询比较多,数据遍历操作比较少,所以用B树作为索引结构。
(3)那么为什么Mysql做数据遍历操作多?而Mongodb做数据遍历操作少呢?
因为Mysql是关系型数据库,而Mongodb是非关系型数据。由于关系型数据库和非关系型数据的设计方式上的不同。导致在关系型数据中,遍历操作比较常见,因此采用B+树作为索引,比较合适。而在非关系型数据库中,单一查询比较常见,因此采用B树作为索引,比较合适。

【mysql innodb索引结构B+树】相关推荐

  1. mysql innodb 索引结构_Mysql 学习笔记:InnoDB 索引结构浅析

    索引是检索图书资料的一种工具,把书刊中的内容或项目分类摘录,注明页数,按一定次序排列. 针对不同的数据存储结构有不同的数据查找方式. 1. 数据结构 1.1 B树 B树又名平衡多路查找树,主要用于文件 ...

  2. 轻松理解 MySQL InnoDB 索引、B+树索引、查询原理

    博主:爱码叔 个人博客站点: icodebook 公众号:爱码叔漫画软件设计(搜:爱码叔) 专注于软件设计与架构.技术管理.擅长用通俗易懂的语言讲解技术.对技术管理工作有自己的一定见解.文章会第一时间 ...

  3. MySQL怎么运行的系列(四)Innodb索引结构和方案

    本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql系列( ...

  4. mysql多索引结构_MySQL 索引结构

    谈到 MYSQL 索引服务端的同学应该是熟悉的不能再熟悉,新建表的时候怎么着都知道先来个主键索引,对于经常查询的列也会加个索引加快查询速度.那么 MYSQL 索引都有哪些类型呢?索引结构是什么样的呢? ...

  5. mysql的索引结构

    前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结. 自上上篇写了手动搭建Redis集群和MySQL主从同步(非Docker)和上篇写了动手实现MySQL读写分离and ...

  6. 面试 | MySQL InnoDB一棵B+树可以存放多少行数据?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 飘扬的红领巾 来源 | cnblogs.com ...

  7. mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联

    延迟关联:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据. 为什innodb的索引叶子节点存的是主键,而不是像myisam一样存数据的物理地址指针? 如果存的是物理地址指针不就不 ...

  8. 九. MySQL InnoDB 底层结构

    目录 一. InnoDB 数据记录存储结构 二. InnoDB索引页结构 三. 简单总结 一. InnoDB 数据记录存储结构 在使用InnoDB作为存储引擎时,最小的存储单位为页,一页大小为1638 ...

  9. 探究MySQL的索引结构选型

    前言 本文将探究MySQL索引结构的技术选型,分析哈希表.二叉搜索树.AVL树.红黑树.B树与B+树各自的优缺点. 解释了MySQL最终选择B+树作为其索引的组织方式的原因,并在最后增加了3道常问的面 ...

最新文章

  1. element的多级选中_element-ui(Vue.js) 我在做二级select联动时选中值是循环的value怎么解?...
  2. BurpSuite pro v2.0.11版
  3. cocoJS配置文件:project.json
  4. Deleting Edges 思维 最短路 删边
  5. 【学习小记】一般图最大匹配——带花树算法
  6. python爬虫----(4. scrapy框架,官方文档以及例子)
  7. UISegmentedControl触发事件的错误
  8. 使用jQuery实现网页技术(无数据库)
  9. paip.提升安全性----.net C#源码防止反编译以及源码加密
  10. ediplus 复制编辑一列_Editplus 部分使用技巧(一)
  11. cass小插件集合_CASS插件合集 - 下载 - 搜珍网
  12. c语言某年某月某日的天数,输入某年某月某日,判断这一天是这一年的第几天...
  13. 今天买了正版的beyondcompare 4.0
  14. 扫描项目中的二维码关注微信公众号
  15. 数贝携手付晓岩老师带你玩转“企业架构”
  16. ClientJS是什么?
  17. Android获取手机IMEI,IMSI, MAC标识和唯一标识的生成
  18. python培训 中科普开
  19. Oracle将收购Sun公司
  20. 12个助记词(24个助记词)怎么保存最安全

热门文章

  1. DBA Scripts
  2. 区块链投资700元就能赚
  3. STM32F411的HSI和HSE启动方式切换及仿真
  4. 刷脸支付降本增效更快更便捷的支付体验
  5. 3.1、随机森林之随机森林实例
  6. Day5 Four English Grammer Mistakes Made By French Speakers
  7. 彩涂板废气处理吸附工艺
  8. 京东移动端首页 案例
  9. 哈工大2021 形式语言与自动机期末
  10. 微信小程序自定义select下拉选择组件