数据库的索引


什么是索引?

索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。mysql中的索引结构是基于B+树的。

为什么要使用B+树?

二叉树:

当为1,2,3,4,5,6的数据时候,需要依次遍历,想要查找为6时,就需要查找6次。

红黑树(二叉排序树):

红黑树然后避免了二叉树这个缺点,但是当高度很高的时候,磁盘IO次数还是很多。

B树:

B树避免了红黑树的缺点,但是B树的非叶子节点是存放date指针,而磁盘一次IO读取的内容是有限的,因此也需要更多的IO次数。

B+树:

B+树的非叶子节点不存放date指针,存放索引方向的数据项。因此一次IO读取的数据比B树多,他的数据是全部存放在叶子节点的,并且叶子节点之间用指针串起来,这样遍历速度非常快。