索引的作用
提供了类似于书中目录的作用,目的是为了优化查询
索引的类型(算法)
- ==BTREE索引==
- RTREE索引
- Hash索引
Full text/全文索引
BTREE的细分类(算法)
- B-TREE
- B+TREE
==B*TREE/默认==
B树是如何构建的
辅助索引
-- 创建辅助索引
alter table t1 add index idx_name(name);
1. 将name列的所有值取出来,进行自动排序
2. 将排完序的值均匀的落到16KB叶子节点数据页中,并将索引键值所对应的数据行的聚集索引列值
3. 向上生成枝节点和根节点
聚集索引(IOT)
1. 默认是按照主键生成聚集索引.没有主键,存储引擎会使用唯一键
如果都没有,会自动生成隐藏的聚集索引.
2. 数据在存储时,就会按照聚集索引的顺序存储到磁盘的数据页.
3. 由于本身数据就是有序的,所以聚集索引构建时,不需要进行排序.
4. 聚集索引直接将磁盘的数据页,作为叶子节点.
5. 枝节点和根节点只会调取下层节点主键的最小值