SQL进阶
索引
索引是指一种数据结构,将数据按照一定的规则进行排列和组织,能够快速定位到数据的位置,以加快数据库的查找和访问速度
索引的类型
按数据结构分类有:B+树索引
、Hash索引
、Full-text(全文本索引)
。
在 MySQL
中默认采用 B+树索引
,这也是最广泛使用的索引类型,要去重点学习。
按物理存储分类有:聚集索引
、非聚集索引
。
按字段特点分有:主键索引 Primary Key
,唯一索引 Unique
,普通索引 Index
,全文本索引 Full Text
。
按字段的个数分有:单列索引
,联合索引
常见索引数据结构和区别
二叉树
特点:每个节点最多有两个节点,如果数据越随机,树杈越明显
随机的:
顺序的:
可以看出如果数据是按顺序依次进入的,树的高度会很高,此时元素的查找效率相当于 O(n)
红黑树(平衡二叉树)
红黑树是在二叉树的基础上,通过自旋平衡降低二叉树的高度
可以看一下这个视频讲解 neko 算法课 红黑树插入【11期】
红黑树的性质:
- 根节点是黑色的
- 节点是红色或者黑色
- 叶子节点是黑色的(最底层的叶子节点实际上不存放数据,都是空节点)
- 红色节点的父节点和子节点都是黑色的(不会存在连续两个连续的红色节点)
- 从任意节点到叶子节点的所有路径上都包含数量相同的黑色节点
左旋和右旋:
左旋和右旋之间的区别不大,只是镜像了一次。
右旋算法步骤:
- 祖父节点指向右子节点
- 父节点指向祖父节点
左旋算法步骤:
- 祖父节点指向左子节点
- 父节点指向祖父节点
B -树
B+树
B 树和 B+树的区别
Hash 索引
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 lilming的编程方舟!
评论
ValineDisqus