此笔记为尚硅谷MySQL高级篇部分内容
目录
一、索引及其优缺点
1、索引概述
2、优点
3、缺点
二、InnoDB中索引的推演
1、设计索引




1.一个简单的索引设计方案

2.InnoDB中的索引方案
① 迭代1次:目录项纪录的页

② 迭代2次:多个目录项纪录的页


③ 迭代3次:目录项记录页的目录页


④ B+Tree

2、常见索引概念
索引按照物理实现方式,索引可以分为 2 种:聚簇(聚集)和非聚簇(非聚集)索引。我们也把非聚集索引称为二级索引或者辅助索引。
1. 聚簇索引

2. 二级索引(辅助索引、非聚簇索引)


3. 联合索引

3、InnoDB的B+树索引的注意事项
1. 根页面位置万年不动
理解形成过程

2. 内节点中目录项记录的唯一性

3. 一个页面最少存储2条记录

三、MyISAM中的索引方案

MyISAM索引的原理图


MyISAM 与 InnoDB对比


小结

四、索引的代价
五、MySQL数据结构选择的合理性
全表遍历
Hash结构

Hash索引适用存储引擎如表所示:



二叉搜索树
如果我们利用二叉树作为索引结构,那么磁盘的IO次数和索引树的高度是相关的。


AVL树

B-Tree



B+Tree


思考题
思考题:为了减少IO,索引树会一次性加载吗?

思考题:B+树的存储能力如何?为何说一般查找行记录,最多只需1~3次磁盘IO

思考题:为什么说B+树比B-树更适合实际应用中操作系统的文件索引和数据库索引?

思考题:Hash 索引与 B+ 树索引的区别


思考题:Hash 索引与 B+ 树索引是在建索引的时候手动指定的吗?

R树

小结

算法的时间复杂度
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。

高级篇笔记PDF自取
链接:https://pan.baidu.com/s/1pVqrTwIZFoED77i-EFmw6g?pwd=3333
提取码:3333












