MYSQL 数据结构
-
hash算法
- hash函数,散列分布
- 复杂度O(1)
- 精确查找快, 不支持范围查找
- hash函数,散列分布
-
二叉树查找树
- 定义
- 1. 左子树所有节点的值均小于他的根节点的值
- 2. 右子树所有节点的值均大于他的根节点的值
- 3. 子树也符合以上规则
- 缺点
- 数据不平衡
- 定义
-
平衡二叉树
- 定义
- 1. 二叉查找树的定义
- 2. 左右两个子树的高度差的绝对值不超过1(子高平衡)
- 缺点
- 几乎每次插入/删除节点都会影响二叉树的平衡
- 定义
-
红黑树
- 定义
- 1. 每个结点要么是红的,要么是黑的
- 2. 根结点是黑的
- 3. 每个叶结点,即空结点(NIL)是黑的
- 4. 如果一个结点是红的,那么它的俩个儿子都是黑的
- 5. 对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点(黑高平衡)
- 定义
-
B树(平衡多路查找树)
- m阶的B树定义
- 1. 根节点至少有2个节点
- 2. 每个中间节点都包含k-1个元素和k个孩子, 其中 m/2 <= k <= m
- 3. 每个叶子节点都包含k-1个元素, 其中 m/2 <= k <= m
- 4. 所有叶子节点在同一层上
- 5. 每个节点的元素从小到大排列
- 优缺点
- 横向扩展, 不会增加深度
- 特点
- 1. m阶B树节点最多有m个子树, m-1个元素
- 2. m阶B树节点最少有m/2个子树, m/2 - 1 个元素
- 3. 数据即存在叶子节点, 也存在中间节点
- 为了磁盘或其它存储设备而设计的一种多叉平衡查找树, 多用于做文件系统的索引
- 因为文件系统和数据库一般都是存在电脑硬盘上的,如果数据量太大的话不一定能一次性加载到内存中。但是B树可以多路存储, 刚好可以对应数据存储的页.
- m阶的B树定义
-
B+树
- m阶的B+树定义
- 1. 根节点至少有2个子女
- 2. 每个中间节点都至少包含ceil(m / 2)个孩子,最多有m个孩子
- 3. 每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m
- 4. 所有的叶子结点都位于同一层
- 5. 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划
- 特点
- 1. m阶B树最多有m个子树, m-1个元素
- 2. 每个中间节点至少包含ceil(m/2)个子节点
- 3. 每个叶子节点都有左右2个指针,指向左右的下一个数据数据,形成一个有序的双向链表
- 4. 只有叶子节点才会有data,其他都是主键索引
- 优缺点
- 横向扩展, 不会增加深度
- m阶的B+树定义
各位看官大佬,不足之处,多多批评指正,不胜感激!

浙公网安备 33010602011771号