B-Tree索引:
1常用的索引,通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。
2加快数据的查询速度,因为不必在进行全表扫描,取而代之的是从索引的根节点进行扫描,根节点存放了指向子节点的指针,根据这些指针到下层去查找,通过比较节点页的值和要查找的数据的值,可以找到合适的指针进入下层子节点,要么找到,要么不存在;
3叶子结点比较特别,它们的指针指向的是要查找的数据,而不是其他的节点页;
4B-Tree对索引列是顺序存储的,所以很适合范围查找数据;,索引对多个数据进行排序的依据是创建表时CREATE TABLE语句定义索引列的顺序,
索引优化:
1独立的列:是指索引列不能是表达式的一部分,也不能是函数的参数,必须将索引列单独放在比较符号的一侧,
2前缀索引和索引选择性:有时索引列太长会降低性能,可以选择一部分前缀来提高性能,但会降低索引的选择性,不重复的变少,诀窍在于索引足够长来使选择性接近索 引整个列而不能太长;
3不需要考虑排序和分组时,将选择性最高的列放在索引最前列;