细谈——索引重点内容

 

 

 

 

 

 

一,概念:

百度百科是这样定义的:索引对数据库库表中的一列或多列的值进行排序的一种结构,使用索引可以快速访问数据表中的特定信息。

(其实,对索引稍加了解的人都知道:数据库索引通俗来说就是数据库查询目录。就好比一本书前面的目录。有了目录的书,查询其所需看的章节内容来很是迅速、方便。同样数据库中索引的创建加快了数据的查询速度。)     

 二,索引的创建:

  1,直接创建:(1)利用企业管理器的索引向导创建

            (2)利用企业管理器直接创建

            (3)利用T—SQL语句

 2,间接创建:新建表时创建 (即:创建主键约束或唯一约束时,系统自动创建唯一性索引)

 注意:至于几种创建索引方法的操作、直接创建索引与间接创建索引的区别、各种方法创建的索引的优先级等在之后博客中介绍。

 

 我们之所以创建索引,是因为索引给我们的数据检索带来很大

 

的方便,它大大提高了系统的性能。

 

三,1,创建索引的优点:

          1)保证了数据表中每一行数据的唯一性。

   (2)大大加快了数据的检索速度(创建索引的主要原因及目的)——有了“数据目录”检索起来当然快速

   (3)加速了表和表之间的连接  (特别在实现数据的参照完整性方面)

   (4)减少查询中分组和排序的时间,加速数据检索     

   (5)在进行数据查询时,使用优化隐藏器,提高系统性能。

 索引的创建可以带来如此大的方便和好处。那么我们可以毫无

 

顾忌的在每一列中都创建一个索引吗?

                 

                2,创建索引的缺点:

           (1)创建和维护索引要耗费时间,并且耗费的时间随着数据量的增加而增加。

   (2)索引占用存储空间(大家都知道数据表占用数据存储空间;其实每个索引也都要占用一定的存储空间,虽然索引占用的空间比数据占用的少,但是的确占用;尤其是建立聚集索引,需要的空间更大)

   (3)在表中进行增、删、更、改等操作时,需要有额外的操作来维护索引——这样就降低了数据的维护速度

      (如果没有建立索引,往表中插入数据,只需维护数据表;如果建立了索引,往表中插入数据的同时时,系统还需要更新数据在表中的位置,也就是说还需要更新索引表)

   (4)由上可知:过多的索引会起反作用

 既然:索引不止有着自己独特的优点,还存在着很多不足;那

 

么当然:我们要充分利用它的优点,来提高我们的工作效率。因

 

此:我们需要索引选择

 

 

四,索引选择:

       如何进行索引选择?哪些列适合建立索引,需要建立索引?那些列不适合建立索引,不需要建立索引?索引的选择关系着索引的应用效率。

   1,在这些列上创建索引:

 (1)经常需要搜索的列

 (2)作为主键的列上,强制该列的唯一性和组织表中数据的排列结构

 (3)经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度

 (4)经常需要根据范围进行搜索的列上 (因为索引已经排序,器指定的范围是连续的)

 (5)经常需要排序的列上 (因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间)

 (6)经常使用Where子句的列上——加快条件的判断速度

 

    2,在这些列上不该创建索引:

 (1)查询中很少使用或参考的列上  (因为,索引的目的就是提高检索效率。既然这些列很少使用,那么有无索引并不能提高检索速度。相反,由于增加了索引烦为降低了系统的维护速度、增大了空间需求)

 (2)只有很少数据值得列上(因为,由于这些列的取值很少,例如“学生信息表”的姓名列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在索引表中搜索的数据行的比例很大。这样的列增加索引不能明显加快检索速度)

 (3)对于那些定义为text,image和bit数据类型的列不应该增加索引 (因为,这些列的数据量,要么相当大,要么相当少)

 (4)当修改性能远远大于检索性能时,不应该创建索引 (这是因为,修改性能和检索性能时互相毛肚的额。当增加索引是,会提高检索 性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引)

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值