Bootstrap

MySQL索引

索引的基本概述

索引的分类

  1. 主键索引:设定为主键后数据库会自动建立索引,主键不能为空

  2. 单值索引:除主键外的其他某一列设置的索引

  3. 复合索引:一个索引包含多个列

  4. 唯一索引:索引列的值唯一,允许为空,只能存在一个null

    show index from 表名; --查看表中索引

索引底层原理解析—B+树

在这里插入图片描述
B+Tree是在B-Tree(B树)结构基础上的一种优化,使其更很适合实现外存储的索引结构,InnoDB存储引擎就是使用B+Tree实现其索引结构。

B+Tree与B-Tree(B树)最大的区别就是,B树非叶子节点必须存储数据,而每页存储空间是有限的,如果存储的数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时,会导致B树的深度很大,从而增大了查询时磁盘的I/O次数,影响查询效率。而B+树只有叶子节点存储数据,非叶子节点不存储数据,只存储索引和指针即key值信息,这样大大加大了每个节点存储key的数量,进而页目录存储的数据可以更多,树的深度更小。
B+树相对于B树有几点不同:</

;