您的位置:首页 > 数据库

MSSql Server基础学习系列———索引

2015-09-16 21:57 218 查看
MSSql Server 对于那些未建立索引的表格数据的检索是从第一行开始,从上往下,一条一条的检索。如果我们程序中经常要用到查询操作,而且数据库中的数据量很庞大,毫无疑问,每次的数据查询都会比较浪费时间。

大家小时候学语文的时候应该都用过新华字典,回想一下我们查找某个汉字的时候是怎么做的呢?我们应该都会先查找字典前面的目录,然后根据目录指示的页数进行汉字查询,这大大节约了我们的查询效率。试想一下,如果没有这个目录,查询一个我们不认识的汉字该是多么可怕的一件事情啊。微软当然也为我们的查询提供了优化操作。MSSql Server数据库中的索引就相当于对我们的数据创建了一个目录,有了目录查找数据时就会更快了。

建立索引固然提高了我们的查询效率,可也带来了一些弊端

(1)空间成本的消耗

我们需要在数据库中建立所以,固然就需要一些空间来保存这些索引,舍空间求时间。

(2)可能会降低删修的时间(性能)。

数据库中为某个表格建立索引之后,数据库中的数据就已经进行了排序。如果我们想插入一条数据,而这条数据根据建立的索引原则应该插入到表格的中间位置,那为了维持这个索引,在这个新插入数据之后的所有数据都需要向后移动,如果数据量很大,这也是比较耗性能的。同样是删除操作。

索引分为两类:

聚集索引:数据在索引中的顺序与数据的物理顺序一致.(如字典中的音序查字法)

非聚集索引:数据在索引中的顺序与数据的物理顺序不一致.(如部首查字法)

一旦一个表创建了一个主键,那么也就创建了一个聚集索引。

非聚集索引建立:
选择某个表格->设计->选择某一列->右键 索引/键->左边区域点击添加->选择需要建立非聚集索引的列以及排序规则、是否唯一

建索引的原则:

1) where 后经常搜索的列

2) 不经常改变的列

3) 数据差别要大(如性别列,就不要建索引了)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: