InnoDB存储引擎支持以下几种常见的索引:
- B+树索引
- 全文索引
- 哈希索引
B+数索引的构造类似于二叉树,根据 键值快熟查找数据,并且B+树中的B不代表二叉(Binary),而实代表平衡(balance),因为B+树是从最早的平衡二叉树演变而来的,但是B+树不是一个二叉树。B+树索引并不能找到一个键值的具体行,B+树索引找到的只是被查找数据行所在的页。然后数据库通过英把页读入内存,再在页中进行查找,最后找到要查找的数据。
B+树索引是数据库中使用最频繁的一种索引。B+树是有平衡二叉树演化而来,所以在介绍B+树之前,先了解一下什么是二叉查找树和二叉平衡树。
一.二叉查找树
在二叉查找树中,左子树的键值总是小于根节点的键值,右子树的键值总是大于根节点的键值。
该图就是二叉查找树,并且可以通过中序遍历得到键值的排序,为:235678.
对该二叉树的节点进行查找发现深度为1的节点的查找次数为1,深度为2的查找次数为2,深度为n的节点的查找次数为n,因此其平均查找次数为 (1+2+2+3+3+3) / 6 = 2.3次
二叉查找树可以任意地构造,同样是2,3