码迷,mamicode.com
首页 > 数据库 > 详细

sql索引的定义以及用法总结

时间:2015-07-28 13:00:27      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

索引定义: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在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长。

版权声明:本文为博主原创文章,未经博主允许不得转载。

sql索引的定义以及用法总结

标签:

原文地址:http://blog.csdn.net/qinlinlinwoaini/article/details/47103445

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!