Article Outline
MySQL学习笔记
其实MySQL平时用的挺多的,但是很多细节不知道,看一些视频也讲的不够细致,所以,趁着有时间,准备把常用到的内容整理一下,记下来。
一、索引篇
关于B树和B+树
B树的结构是一个结点可以拥有多于两个子结点的多叉查找树,最重要的是,所有叶子结点都出现在同一层,叶子结点不含有任何关键字信息。B+树是B树的一个变体,他的所有关键字信息都出现在叶子结点中,并且包含这些关键字记录的指针。叶子结点可以按照关键字的大小顺序链接,他所有的数据都保存在叶子结点中。
两种索引 聚集索引和普通索引
聚集索引其实就是一种索引组织形式,索引键值的逻辑顺序决定了表数据行的物理存储顺序,聚集索引叶子节点存放表中所有行数据记录的信息,所以经常会说 数据即索引,索引即数据。在创建表的时候,如果有主键,则会创建一个主键的聚集索引;如果不主动创建主键,那么InnoDB选择第一个不包含null值的唯一索引所谓主键。
普通索引在叶子节点并不包含所有行的数据记录,只是会在叶子结点保存自己本身的键值和主键的值,在检索数据时,通过普通索引叶子结点上的主键来获取到想要查找的行数据记录
通俗一点的解释就是:聚集索引在索引的叶子结点上,存储的就是数据表中的值;普通索引存储的是与主键的关系,在普通索引命中后,只能通过索引查到对应的主键信息,如果想获取表中数据,要通过这个主键信息再进行一次查询。