首页 > 数据库 >mysql为何使用B+树作为索引

mysql为何使用B+树作为索引

时间:2023-02-11 13:22:49浏览次数:78  
标签:hash 链表 索引 二叉树 mysql 为何 数据结构

讲mysql innodb使用B+树作为索引的原因:https://juejin.cn/post/7081065180301361183

  1. 分析mysql数据特点:存储在磁盘,为了提升性能,需要尽量减少io操作
  2. 分析所有数据结构:线性、非线性;基础数据结构和衍生出的高级数据结构(数组、链表、hash、树、图;跳表、位图等)

得出 适合用树来存储索引,进一步分析了二叉树、二分查找树(bst)、自平衡二叉树(avl)、红黑树、到B树、B+树。
hash适合等值查询;b树是和等值,效率不稳定,范围查询适合用B+树。

数据库的随机插入、删除操作决定了不能使用线性结构、快速查找特定决定了不能用链表;最终选择 树 这种数据结构。

标签:hash,链表,索引,二叉树,mysql,为何,数据结构
From: https://www.cnblogs.com/rickyWang/p/17111277.html

相关文章

  • mysql-proxy 读写分离,不支持mysql5.7的client客户端登录
    安装前,先有mysql主从下载proxy,https://downloads.mysql.com/archives/proxy/#downloadswgethttps://downloads.mysql.com/archives/get/p/21/file/mysql-proxy-0.8.5-......
  • 为何我选择Ubuntu操作系统
    选择Ubuntu操作系统的原因十分简单。那就是我进行了占卜。卦象显示,用Ubuntu编程,才会收获一个较好的结果。于此,我又自相矛盾了。这下我将全面转战Ubuntu系统。的确,我的确憎恨......
  • 饱和度 - 监控MySQL的InnoDB Buffer pool 相关的指标
    1. 对于MySQL而言,用什么指标来反映资源有多“满”呢?首先我们要关注MySQL所在机器的CPU、内存、硬盘I/O、网络流量这些基础指标2. MySQL本身也有一些指标来反映饱......
  • linux安装 mysql
    在终端中输入命令安装mysqlsudoapt-getinstallmysql-server安装成功后可以在终端中输入下面命令登录mysql不知道为什么,在网上搜索有的会说安装的时候会让你设置......
  • MySQL数据类型
    数值类型关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。TINYINT1Bytes(-128,127)(0,255)小整数值SMALLINT2Bytes(-32768,32767)(0,65535)大整......
  • MySQL数据库系统部署使用
    推荐步骤:在centos01上安装MySQL数据库服务,生成服务器配置文件,添加系统服务优化命令初始化MySQL,设置访问密码登录MySQL数据库 在centos01的MySQL服务器上创建数据库,数据库......
  • 性能分析 | MySQL Index Condition Pushdown(ICP)
    介绍概念介绍索引下推(IndexConditionPushdown,简称ICP),是MySQL5.6版本的新特性,ICP是针对MySQL使用索引从表中检索行的情况的优化方式关闭ICP,存储引擎会遍历索引以定位......
  • MySQL数据库系统部署使用
    拓扑图:推荐步骤: 在centos01上安装MySQL数据库服务,生成服务器配置文件,添加系统服务优化命令初始化MySQL,设置访问密码登录MySQL数据库 在centos01的MySQL服务器上创建数据......
  • statefulset详解及为何结合headless service部署有状态应用
    1.1有状态应用管理statefulsetStatefulSet(有状态集,缩写为sts)常用于部署有状态的且需要有序启动的应用程序,比如在进行SpringCloud项目容器化时,Eureka的部署是比较适合用St......
  • MySQL - B+树
    B+树一个m阶的B+树具有如下几个特征:有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。所有的叶子结点中包含......