自学内容网 自学内容网

mysql 07 怎么用-B+树索引的使用

01 举例 创建一张表,有两个索引(聚集索引,联合索引)

首先, B+ 树索引并不是万能的,并不是所有的查询语句都能用到我们建立的索引。下边介绍几个我们可能使用 B+ 树索引来进行查询的情况。为了故事的顺利发展,我们需要先创建一个表,这个表是用来存储人的一些基本信息的:
在这里插入图片描述
在这里插入图片描述
02. 一个索引一个B+树,这里主要讲的是联合索引

从这两点注意中我们可以再次看到,一个表中有多少索引就会建立多少棵 B+ 树, person_info 表会为聚簇索引和 idx_name_birthday_phone_number 索引建立2棵 B+ 树。下边我们画一下索引idx_name_birthday_phone_number 的示意图,不过既然我们已经掌握了 InnoDB 的 B+ 树索引原理,那我们在画图的时候为了让图更加清晰,所以在省略一些不必要的部分,比如记录的额外信息,各页面的页号等等,其中内节点中目录项记录的页号信息我们用箭头来代替,在记录结构中只保留 name 、 birthday 、 phone_number 、id 这四个列的真实数据值:
在这里插入图片描述
在这里插入图片描述
03.全值匹配

在这里插入图片描述
在这里插入图片描述
04.匹配左边的列
在这里插入图片描述
4.1匹配列前缀
我们前边说过为某个列建立索引的意思其实就是在对应的 B+ 树的记录中使用该列的值进行排序,比方说person_info 表上建立的联合索引 idx_name_birthday_phone_number 会先用 name 列的值进行排序,所以这个联合索引对应的 B+ 树中的记录的 name 列的排列就是这样的:


原文地址:https://blog.csdn.net/qq_38757863/article/details/142783519

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!