索引定义:SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者字画查找)。
索引作用:通过索引可以大大的提高数据库的检索速度,提高数据库的性能。
索引的类型:
1:唯一索引:唯一索引不允许两行有相同的索引值(其实也就是说唯一索引的这一列,每个值都是唯一的);
例如,如果在stuInfo表中的学员员身份证号(stuID) 列上创建了唯一索引,则所有学员的身份证号不能重复。
2:主键索引:定义表主键的时候,会自动创建主键索引(其实主键索引就是唯一索引的特例),主键索引要求每一个值都是唯一的且非空。
主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。
3:聚集索引:表中各行的物理顺序与键值的逻辑顺序相同,每个表只能有一个。
在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。例如:汉语字(词)典默认按拼音排序编排字典中的每页页码。拼音字母a,b,c,d……x,y,z就是索引的逻辑顺序,而页码1,2,3……就是物理顺序。默认按拼音排序的字典,其索引顺序和逻辑顺序是一致的。即拼音顺序较后的字(词)对应的页码也较大。如拼音“ha”对应的字(词)页码就比拼音“ba” 对应的字(词)页码靠后。
4:非聚集索引:非聚集索引指定表的逻辑顺序,数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。
如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引(nonclustered index)有更快的数据访问速度。例如,按笔画排序的索引就是非聚集索引,“1”画的字(词)对应的页码可能比“3”画的字(词)对应的页码大(靠后)。
提示:SQL Server中,一个表只能创建1个聚集索引,多个非聚集索引。设置某列为主键,该列就默认为聚集索引
索引的优缺点:
优点:加快访问速度;
加强行的唯一性
缺点:带索引的表在数据库中的存储需要更多的空间;
创建索引的原则:
下列情况下可以使用索引:
该列频繁用于搜索;
该列用于对数据进行排序;
下列情况下避免使用索引:
列中仅仅包含几个不同的值;
表中仅包含几行。为小型表创建索引可能不太划算,因为SQLServer在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长。
版权声明:本文为博主原创文章,未经博主允许不得转载。