探索B树/B+树与MySQL数据库索引的关系

本文主要讲述主轴线:

  1. 由搜索/查找联系到数据结构(搜索树,红黑书,B/B+树);
  2. 进行B/B+/RBtree的性能分析;
  3. 讲述一些关于数据从内存以及磁盘读取数据的数据存储管理的内容;
  4. 对数据库引擎MyISAM和InnoDB的分析;

前言

:目前大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构,最近学习了数据结构树这一部分的内容,又阅读了前辈们关于这一话题的的总结后,斗胆运用所学知识进行一次分析,可能比较浅薄,有不足的地方,希望可以指出;

  希望看这篇文章的你有一定的数据结构基础,因为其中很多东西,都只是提一下,帮助回忆,并不做更深的讨论,正如文中所说的,那只是沿途的风景!   

<一>搜索和查找

在学习基本语言的时候,我们知道有顺序查找和二分查找等一系列查找算法,接触数据结构之后,我们知道了二分查找的扩展,搜索树(BSTree),同时也了解到了顺序查找的弊端:面对海量数据的疲软(0(N)的时间复杂度;

而越来越多的关于搜索的数据结构也随之而来,其实最熟悉的无外乎两种,哈希查找和搜索树;

哈希查找,简单的就是直接定址了,通俗点说就是直接根据下标找到对应数据,这样的时间复杂度是O(1),当然哈希表可不止这么简单;经常利用哈希桶的方法解决大数据处理的问题,同样,哈希索引也是数据库索引的一种,本文主要介绍的还是BTree索引,关于哈希索引只是提一下,想要了解的同学,可以看下面这篇推荐的文章:http://blog.jobbole.com/100349/

搜索树,就是二分查找树,也叫二叉排序树,利用二分查找的思想构建的数据结构,它的时间复杂度和二分查找的时间复杂度一样(log2N);如果你忘记了什么是搜索树可以看下面的文章回忆一下,要不然,很难继续!
http://blog.csdn.net/bitboss/article/details/52869078

当然,搜索树还有很多变种,例如AVLTree(高度平衡二叉树)/RBTree(红黑树)/B-树/B+树/B*树;为什么说是变种,因为本质上都是搜索树,只是增加了一些不一样的特性;
为什么要增加这些特性?
当然是为了提高效率,因为随着树的高度h越大,

  • 14
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值