目录
🎈概念:
🎈作用:
🎪 使用场景:
🎪使用:
🌸B树
💐概念:
💐结构:
💐特点:
🌸B+树
💐概念:
💐结构:
💐特点:
🌸总结:
概念:
索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。
作用:
使用场景:
根据索引的优缺点和索引的作用,我们可以看出,满足一下几个条件时候我们可以使用索引。
满足以上条件时,考虑对表中的这些字段创建索引,以提高查询效率。
使用:
此时框住的就是当前表的索引名,是针对id列设置的。
此时name索引就被删除了。
需要注意的是:在 篇四 的表约束里讲到的主键(primary key)和unique,这设置这两个属性是 会自动生成对应列的索引。
索引背后的数据结构
B树
概念:
B树也叫B-树(B杠树)。是一颗多路搜索树,一个节点上有n个key,向下引出n+1个子区间。 B树也可以认为是一个N叉树。
结构:
例如这个图的数据,此时这就是一个B树结构,最上面的节点中有4个key,往下就划分出来(4+1)个范围的节点,分别是(...~30), (30~40) , (40~50) , (50~60) , (60~...) 注意这些区间都是前开后开的。
特点:
B+树
概念:
B+树是B树的变体,在B树基础上有一些优化和改变,B+树也是一个N叉树,对路搜索树,但是不同于B树,一个节点上有N个key,可以向下引出N个子区间。
结构:
这个图的结构就是一个B+树,为什么B+树N个节点只能向下划分(N+1)个区间,而B树是N个,我们观察这个结构,我用红色方框框住的数,这些数是各自节点中数据的最大值,没有比这个数更大的数,并且我们发现,B树向下划分的区间范围都是前开后开的,而B+树 划分的范围是前开后闭,而且上面节点的key值,在下面节点中一定能找到!!!
所有的key值最后都会储存到最下面的叶子节点中,并且通过首尾相连形成一个链表结构。
特点:
总结:
MySQL的基本索引使用的是B+树