索引概念
它是一种为表中的给定字段提供存取路径的数据结构。
磁盘的IO
磁盘IO是非常高昂的操作,当一次IO时,不光把当前磁盘地址的数据,而是把相邻的数据也都读取到内存缓冲区内,因为局部预读性原理告诉我们,当计算机访问一个地址的数据的时候,与其相邻的数据也会很快被访问到。
索引的数据结构--b+树
索引的原理
对要查询的字段建立索引其实就是把该字段按照一定的方式排序;建立的索引只对该字段有用,如果查询的字段改变,那么这个索引也就无效了,比如图书馆的书是按照书名的第一个字母排序的,那么你想要找作者叫张三的就不能用改索引了;如果索引太多会降低查询的速度。
索引的类型
聚集索引
所谓聚集索引,就是确定表中数据的物理顺序,如上面图书的按书名排列,又或者手机电话簿的联系人按姓氏排列等。它规定了数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。索引存储顺序和数据行的存储顺序是一致的。
非聚集索引
聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,所以在物理上它就没有所谓的顺序可言,也和物理存储顺序无关。