数据库索引

来源:互联网 发布:淘宝 赣南脐橙 编辑:程序博客网 时间:2024/05/17 15:20

1.概念
数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录 。


数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。


唯一索引:索引字段不能有相等的索引键值。


索引分类:聚集索引、非聚集索引。
聚集索引和非聚集索引都可以是唯一的。这意味着任何两行都不能有相同的索引键值。另外,索引也可以不是唯一的,即多行可以共享同一键值。聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
聚集索引
在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。






建立索引的目的是加快对表中记录的查找或排序。
为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。每当修改了表数据后,都会自动维护表或视图的索引。


2.使用方法

CREATE INDEX article_id ON article(id);



3.常用索引建立规则

1)表的主键、外键必须有索引; 
2数据量超过300的表应该有索引;
3经常与其他表进行连接的表,在连接字段上应该建立索引; 
4经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5索引应该建在选择性高的字段上;
6索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7)复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替
8频繁进行数据操作的表,不要建立太多的索引;
9删除无用的索引,避免对执行计划造成负面影响; 

0 0
原创粉丝点击