索引实现于存储引擎层,因此不具有统一的标准,其实现方式也可能不相同。
如果索引包多列数据,那么列的顺序很重要,因为MySQL只能高效的搜索索引的最左前缀(leftmost prefix)
B-Tree索引
为大部分存储引擎所支持
Ps:NDB Cluster存储引擎尽管把索引标记为BTREE,但其内部使用的却是T-TREE数据结构
许多存储引擎实际使用的B+树,它的每一个叶子节点都包含了指向下一个节点的联接,以实现快速的范围遍历。
B树索引对于搜索范围数据很有用,如,一个文本字段的索引回按照字母序子树上进行排列。
B树的局限
1.如果查询没有从索引列的最左边开始,就没有什么用处;
2.不能跳过索引中的列进行查询;
3.存储引擎不能优化访问任何在第一个范围条件(如like)右边的列。