什么是索引
排好序的快速查找数据结构。
索引的用途
索引用来快速寻找那些具有特定值的记录。
索引会影响where后面的查找,和order by 后面的排序
索引的原理
就是把无序的数据变成有序的查询
1.把创建了索引的列的内容进行排序
2.对排序结果生成倒排表
3.在倒排表内容上拼上数据地址链
4.在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据
数据结构是b+树
聚集索引和非聚集索引
都是b+树的数据结构
聚集索引:把索引和数据放在一起,并且是按照一定的顺序组织起来的,找到了索引也就找到了数据,数据的物理存放顺序和索引顺序是一致的
优点:
只需要一次查询,效率比较高
对于范围查询效率高,因为数据是按照大小排列的
适合用在排序的场合,因为数据是按照大小排列的
非聚集索引:将索引和数据行地址放在一起,找到索引之后根据数据行地址到磁盘查找数据
索引的分类
1.单值索引:一个索引包含单个列
2.唯一索引:索引列的值必须唯一
3.复合索引:一个索引包含多个列