数据库知识-索引(转)

上一篇 / 下一篇  2016-03-16 16:26:51 / 个人分类:个人总结

数据库索引:是数据库管理系统中一个满足特定高级查找算法排序的数据结构,以协助快速查询,更新数据库表数据,这些数据结构以某种方式指向数据。
建立索引的代价:一是增加了数据库的存储空间,而是在插入和修改数据时增加时间开销(索引也需要重新指向)

索引的利弊
优点
1、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
2、可以大大加快数据的检索速度,这也是创建索引的最主要的原因(包括分组、排序、联表查询等)

缺点
1、创建和维护索引耗时随数据量的增长而增加;
2、索引要占数据空间和物理空间;
3、当对表中的数据进行增、删、改的时候,索引要重新动态维护,降低了数据的维护速度;

在这些列上,建议创建索引:
1、经常需要搜索的列;
2、经常需要进行范围搜索的列;
3、经常需要排序的列;
4、经常需要用做where子句查询的列;
5、经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;

在这些列上,不建议创建索引:
1、很少需要检索的列;
2、对于那些有很少数据值的列,例如性别、类型等,查询的结果集返回占据了总数据的比例很大,增加索引,并不能明显加快检索速度;
3、对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
4、当修改性能需要远远大于检索性能时,不应创建索引,因为修改和检索性能是相互矛盾的,索引会影响修改性能;

根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。
唯一索引:不允许其中任何两行具有相同索引值的索引。
主键索引:数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键,主键索引在创建主键时自动创建。
聚簇索引:在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。



TAG: 数据库 知识

 

评分:0

我来说两句

Open Toolbar