【数据库】——MyISAM和InnoDB索引详解

本文详细介绍了B+树及其在数据库索引中的应用,对比了B树与B+树的特性。接着,探讨了MyISAM存储引擎的主键与辅助索引实现,强调其数据与索引分开存储的特点。然后,分析了InnoDB存储引擎的主键索引和辅助索引,其叶子节点直接存储数据的特性。最后,总结了MyISAM与InnoDB在存储结构、空间占用、事务处理、行数统计和锁机制方面的区别。
摘要由CSDN通过智能技术生成

1、B+树详解

1.1引言

【思考】当我们要在磁盘里查询数据的时候,采取何种方式来查找呢?

  • 我们知道顺序遍历时间复杂度O(n) 效率最低,查询密集型的数据库 O(n) 效率最低。
  • 改进一下,在数据结构中我们知道二分查找O(log2 n)效率较高,多路查询时间复杂度O(logx n)效率更高
    但是前提是要数据排列有序
  • 紧接着,我们就要思考如何来排序的问题,如果把排序放在查询数据之前,那么时间复杂度为O(n)+O(logx n) 。这种情况下效率就更低了。

因此我们应该插入的时候排序O(n),在查询的时候O(logx n),由此引出我们B+树把排序完的数据都放在B+树里面进行存储。

1.2B+树概述

(一)B树和B+树的引入

1、二叉查找树
1、概念
任意结点的左子树的值均小于根节点的值,右子树均大于根节点的值,并且没有键值相等的结点,如下图所示:
在这里插入图片描述
2、局限性
在某些情况,二叉查找树会退化成一个有n个结点的线性链,查询的效率就很低。

2、AVL树
1、概念
严格的拼很二叉树,用平衡因子差值判断是否平衡通过旋转来实现平衡。
在这里插入图片描述
2、局限性
维护这种高度平衡所付出的代价比从中获得的效率收益还大,故而实际的应用不多。适合于用于插入删除次数比较少,但是查找多的情况。

3、红黑树
1、概念
是一种弱平衡二叉树的,通过对从根到叶子的路径上各个结点着色方式(根结点和叶子结点必须是黑色,每个红色结点的两个结点都是黑色、从任一结点到每个叶子结点的所有路径都包含相同数目的黑色结点)

在这里插入图片描述

2、特性
相对于要求严格的AVL树来说,他的旋转次数变少了,所以对于搜索、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值