索引Index

优缺点

索引是对数据库表中一列或多列的值进行排序的一种结构
为了提高查询的效率
索引一般建立在需要经常查询的地方

优点

创建索引可以大大提高系统的性能
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点

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

索引分类

a.唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
b.主键索引
数据库表经常有一列或列组合,其值唯一标识表中的每一行,该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。
c.聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
d.非聚集索引

参考:http://blog.csdn.net/desow/article/details/4683241

创建索引

直接创建索引,例如使用CREATE INDEX语句或者使用创建索引向导
间接创建索引,例如在表中定义主键约束或者唯一性键约束时,同时也创建了索引

直接创建索引
1、唯一的索引 (Unique Index)

CREATE UNIQUE INDEX 索引名称
ON 表名称 (列名称) 

2、简单的索引

CREATE INDEX 索引名称
ON 表名称 (列名称)

eg.create index haha on Course(CourseCode,Name)

以降序索引某个列中的值

CREATE INDEX PersonIndex
ON Person (LastName DESC) 

其他

对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?
你正在寻找进行与数据操控有关的应聘人员。
对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。
要求的存储空间越多

参考:http://www.w3school.com.cn/sql/sql_create_index.asp

posted @ 2017-11-21 17:35  Lulus  阅读(267)  评论(0编辑  收藏  举报