数据索引笔记

系统 1832 0

1.什么是索引?

定义:索引是对数据库表中一列或多列的值进行排序的一种结构

目的:加快对表中记录的查找或排序

2.索引的类型?

1.唯一索引:唯一索引是不允许其中任何两行具有相同索引值的索引。
  create unique clustered index myclumn_cindex on mytable(mycolumn)

2.非唯一索引:非唯一索引是相对唯一索引,允许其中任何两行具有相同索引值的索引
  create index myclumn_cindex on mytable(mycolumn)

3.主键索引:数据库表经常有一列或列组合,其值唯一标识表中的每一行。(主键索引是唯一索引的特定类型)

  主键也是一个特殊的索引。与唯一索引的区别,一是主键不允许有NULL值而唯一索引可以,二是一个表里只能有一个主键但唯一索引却可以有多个。

4.聚集索引:在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引 。

3.索引不利的方面

1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

4.应该创建索引的列

1、在经常需要搜索的列上
2、在作为主键的列上(强制该列的唯一性和组织表中数据的排列结构)
3、在经常用在连接的列上(这些列主要是一些外键,可以加快连接的速度)
4、在经常需要根据范围进行搜索的列上创建索引(因为索引已经排序,其指定的范围是连续的)
5、在经常需要排序的列上创建索引(因为索引已经排序)
6、在经常使用在WHERE子句中的列上面创建索引(加快条件的判断速度)

5.不应该创建索引的列:

1、对于那些在查询中很少使用或者参考的列不应该创建索引
2、对于那些只有很少数据值的列也不应该增加索引。(需要在表中搜索的数据行的比例很大)
3、对于那些定义为text, image和bit数据类型的列不应该增加索引。
4、当修改性能远远大于检索性能时,不应该创建索引。

6.需要注意的

1、考虑已在表上创建的索引数量。最好避免在单个表上有很多索引。
2、检查已在表上创建的索引的定义。最好避免包含共享列的重叠索引。
3、检查某列中唯一数据值的数量,并将该数量与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型。

 

数据索引笔记


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论