【mysql innodb索引结构B+树】
【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+树】相关推荐
- mysql innodb 索引结构_Mysql 学习笔记:InnoDB 索引结构浅析
索引是检索图书资料的一种工具,把书刊中的内容或项目分类摘录,注明页数,按一定次序排列. 针对不同的数据存储结构有不同的数据查找方式. 1. 数据结构 1.1 B树 B树又名平衡多路查找树,主要用于文件 ...
- 轻松理解 MySQL InnoDB 索引、B+树索引、查询原理
博主:爱码叔 个人博客站点: icodebook 公众号:爱码叔漫画软件设计(搜:爱码叔) 专注于软件设计与架构.技术管理.擅长用通俗易懂的语言讲解技术.对技术管理工作有自己的一定见解.文章会第一时间 ...
- MySQL怎么运行的系列(四)Innodb索引结构和方案
本系列文章目录 展开/收起 MySQL怎么运行的系列(一)mysql体系结构和存储引擎 MySQL怎么运行的系列(二)Innodb缓冲池 buffer pool 和 改良版LRU算法 Mysql系列( ...
- mysql多索引结构_MySQL 索引结构
谈到 MYSQL 索引服务端的同学应该是熟悉的不能再熟悉,新建表的时候怎么着都知道先来个主键索引,对于经常查询的列也会加个索引加快查询速度.那么 MYSQL 索引都有哪些类型呢?索引结构是什么样的呢? ...
- mysql的索引结构
前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结. 自上上篇写了手动搭建Redis集群和MySQL主从同步(非Docker)和上篇写了动手实现MySQL读写分离and ...
- 面试 | MySQL InnoDB一棵B+树可以存放多少行数据?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 飘扬的红领巾 来源 | cnblogs.com ...
- mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联
延迟关联:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据. 为什innodb的索引叶子节点存的是主键,而不是像myisam一样存数据的物理地址指针? 如果存的是物理地址指针不就不 ...
- 九. MySQL InnoDB 底层结构
目录 一. InnoDB 数据记录存储结构 二. InnoDB索引页结构 三. 简单总结 一. InnoDB 数据记录存储结构 在使用InnoDB作为存储引擎时,最小的存储单位为页,一页大小为1638 ...
- 探究MySQL的索引结构选型
前言 本文将探究MySQL索引结构的技术选型,分析哈希表.二叉搜索树.AVL树.红黑树.B树与B+树各自的优缺点. 解释了MySQL最终选择B+树作为其索引的组织方式的原因,并在最后增加了3道常问的面 ...
最新文章
- element的多级选中_element-ui(Vue.js) 我在做二级select联动时选中值是循环的value怎么解?...
- BurpSuite pro v2.0.11版
- cocoJS配置文件:project.json
- Deleting Edges 思维 最短路 删边
- 【学习小记】一般图最大匹配——带花树算法
- python爬虫----(4. scrapy框架,官方文档以及例子)
- UISegmentedControl触发事件的错误
- 使用jQuery实现网页技术(无数据库)
- paip.提升安全性----.net C#源码防止反编译以及源码加密
- ediplus 复制编辑一列_Editplus 部分使用技巧(一)
- cass小插件集合_CASS插件合集 - 下载 - 搜珍网
- c语言某年某月某日的天数,输入某年某月某日,判断这一天是这一年的第几天...
- 今天买了正版的beyondcompare 4.0
- 扫描项目中的二维码关注微信公众号
- 数贝携手付晓岩老师带你玩转“企业架构”
- ClientJS是什么?
- Android获取手机IMEI,IMSI, MAC标识和唯一标识的生成
- python培训 中科普开
- Oracle将收购Sun公司
- 12个助记词(24个助记词)怎么保存最安全