6.数据库索引
2018-04-16 本文已影响0人
杨大菲
离CPU越远的存储设备,速度越慢,高速缓存>内存>硬盘>网路
数据库索引是对数据库里的某个属性进行排序的一种方式,索引是跟具体属性挂钩的,比如某个表记录n个用户的登录时长,如果是给用户登录时长建立索引,即便往数据库中插入数据的时候是随便插入的,但是索引会保持用户登录时长从小到大排序,有了这个排序想要查找某个时长就比较容易
首先对用户登录时长这个属性建立索引,一开始是空的,随着插入一条张三,三小时这个记录,将这个三小时放入索引中,并保持索引中所有数值都从小到大,索引除了记录三小时还会记录三小时在原来数据表中的位置
当我们查询3小时是哪个用户时候,先在索引表中找到3小时,然后获取对应的位置信息,去原表中找到该条记录,查询到对应用户的昵称
当然创建以上说的数据库索引,是需要开辟一块新的空间的,所以如果数据库在一个硬盘空间很大,但是硬盘读写速度慢那么可以选择利用索引,这就是所谓的空间换时间的概念
数据库索引分为『聚簇索引』和『非聚簇索引』
1)聚簇索引:
按照数据的物理存储顺序建立索引,也就是对原表的按照某个属性的排序,简历索引前和建立后,表内存储数据没有发生变化,只是排序发生变化,建立聚簇索引改变了数据库表的存储结构和数据排序,所以一张表只能简历一个聚簇索引
2)非聚簇索引:
对数据表中某个字段开辟新空间建立索引表,原表没有被改变,新的索引表是按照该字段的排序,同时记录了每个属性的位置指针,通过索引查找可以快速定位具体数据,获取其位置指针,到对应位置获得其余数据
一张表可以建立多个非聚簇索引,但这样的索引会消耗存错空间