数据库 索引 - MrWu94/AndroidNote GitHub Wiki

一、索引的概念

索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。

二、索引的特点

1.索引可以加快数据库的检索速度 <br>
2.索引降低了数据库插入、修改、删除等维护任务的速度 <br>
3.索引创建在表上,不能创建在视图上 <br>
4.索引既可以直接创建,也可以间接创建 <br>
5.可以在优化隐藏中,使用索引 <br>
6.使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引 <br>
7.其他

1.直接创建索引和间接创建索引

直接创建索引: CREATE INDEX mycolumn_index ON mytable (myclumn)<br>
间接创建索引:定义主键约束或者唯一性键约束,可以间接创建索引

2.普通索引和唯一性索引

普通索引:CREATE INDEX mycolumn_index ON mytable (myclumn)<br>
唯一性索引:保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用<br>
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)

3.单个索引和复合索引

单个索引:即非复合索引<br>
复合索引:又叫组合索引,在索引建立语句中同时包含多个字段名,最多16个字段<br>
CREATE INDEX name_index ON username(firstname,lastname)

4.聚簇索引和非聚簇索引(聚集索引,群集索引)

聚簇索引:物理索引,与基表的物理顺序相同,数据值的顺序总是按照顺序排列 CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH ALLOW_DUP_ROW(允许有重复记录的聚簇索引) 非聚簇索引:CREATE UNCLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)