本文整理自网络,侵删。
目录
- 概述
- 索引数据结构
- 二叉树
- 红黑树
- B-Tree
- B+Tree
- Hash
- 索引
- InnoDB索引实现(聚集)
- 索引文件和数据文件是分离的(非聚集)
- 聚集索引和非聚集索引
- 联合/复合索引
- 参考资料
- 总结
概述
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
索引数据结构
二叉树
二叉树(binary tree)是指树中节点的度不大于 2 的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树
对于数组 {1,2,3,4,5} 数据结构将成为了链表
特点:
- 父节点下面有两个子节点。
- 右边节点的数据大于左边节点的数据。
二叉树.png
红黑树
红黑树是一种特定类型的二叉树,它是在计算机科学中用来组织数据比如数字的块的一种结构。若一棵二叉查找树是红黑树,则它的任一子树必为红黑树。
红黑树是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以红黑树不是严格意义上的平衡二叉树(AVL),但对之进行平衡的代价较低, 其平均统计性能要强于 AVL 。
由于每一棵红黑树都是一棵二叉排序树,因此,在对红黑树进行查找时,可以采用运用于普通二叉排序树上的查找算法,在查找过程中不需要颜色信息。
红黑树数据结构如下图:
红黑树数据结构.png
特点:
- 红黑树是每个结点都带有颜色属性的二叉查找树,颜色或红色或黑色。
- 结点是红色或黑色。
- 根结点是黑色。
- 所有叶子都是黑色。(叶子是NIL结点)
- 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
- 从任一节结点其每个叶子的所有路径都包含相同数目的黑色结点。
- 这些约束强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上限允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。
- 是性质4导致路径上不能有两个连续的红色结点确保了这个结果。最短的可能路径都是黑色结点,最长的可能路径有交替的红色和黑色结点。因为根据性质5所有最长的路径都有相同数目的黑色结点,这就表明了没有路径能多于任何其他路径的两倍长。
- 因为红黑树是一种特化的二叉查找树,所以红黑树上的只读操作与普通二叉查找树相同。
B-Tree
- 叶子结点具有相同的深度,叶节点的指针为空
- 所有元素不重复
- 节点中的数据索引从左到右边递增排列
B+Tree
- 非叶子结点不存储数据,只存储索引(冗余),可以存放更多的索引
- 叶子结点包含所有索引字段
- 叶子结点用指针链接,提高区间访问的性能(可以提升范围查找的效率)
特点关键字:节点内有序,叶子结点指针链接,非叶子结点存储索引(冗余)
相关阅读 >>
mysql图形化管理工具哪个好?mysql图形化管理工具排行
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 深入解析MySQL索引数据结构
标签:mysql
相关推荐
评论
管理员已关闭评论功能...