什么是数据库索引:
数据库中的索引和数据的目录相似,利用目录快速查找所需的信息。在数据库中,索引是某个表中一列或者若干列值的集合,以及物流标识这些值的数据页的逻辑指针清单。是SQL Server编排数据的内部方法,通过索引,可快速查找数据,而无需扫描整个表。索引页是数据库中存储索引的数据页,存放数据行的关键字页以及该数据行的地址指针
索引分类:
在SQL Server中,常见的索引有以下六类:
唯一索引:不允许两行具有相同的索引值
主键索引:要求主键中每个值是唯一的
聚集索引:数据存放的物理顺序与索引顺序相同
非聚集索引:数据存放的物理顺序与索引顺序不相同
复合索引:将多个列组合而成的索引
全文索引:一种特殊类型的基于标记的功能性索引
注意:在SQL Server中,一个表只能创建一个聚集索引,但可以创建多个非聚集索引。设置某列为主键,该列就默认为聚集索引
优点:
-
在设计数据库时,通过创建一个唯一的索引,能够在索引和信息之间形成一对一的映射式的对应关系,增加数据的唯一性特点。
-
能提高数据的搜索及检索速度,符合数据库建立的初衷。
-
能够加快表与表之间的连接速度,这对于提高数据的参考完整性方面具有重要作用。
-
在信息检索过程中,若使用分组及排序子句进行时,通过建立索引能有效的减少检索过程中所需的分组及排序时间,提高检索效率。
-
建立索引之后,在信息查询过程中可以使用优化隐藏器,这对于提高整个信息检索系统的性能具有重要意义。
缺点:
-
在数据库建立过程中,需花费较多的时间去建立并维护索引,特别是随着数据总量的增加,所花费的时间将不断递增。
-
在数据库中创建的索引需要占用一定的物理存储空间,这其中就包括数据表所占的数据空间以及所创建的每一个索引所占用的物理空间,如果有必要建立起聚簇索引,所占用的空间还将进一步的增加
-
在对表中的数据进行修改时,例如对其进行增加、删除或者是修改操作时,索引还需要进行动态的维护,这给数据库的维护速度带来了一定的麻烦。