数据库—索引

索引概述:

是一个单独的、物理的数据结构,索引是依赖于表建立的,提供了数据库中编排表中数据的内部方法,一个表的存储是有两部风组成,存放表得数据页面和存放索引页面。

索引一旦创建,将由数据库自动管理和维护,能够提高快速访问的效率

优点:

  • 保证数据记录的唯一性
  • 加快数据检索的速度
  • 加快表与表之间的连接速度
  • 在使用ORDER BY和GROUT BY子句中进行检索数据时,可以显著减少查询中分组和排序的时间
  • 可以在检索数据的过程中优化隐藏器

创建索引:

CREATE

[UNIQUE][CLUSTERED|NONCLUSTERED]  '(微型、1个聚集、多个非聚集)

INDEX index name

On

Table_name | view_name

(column_name[1,…,n])

删除索引:

DROP index 表名.索引名

创建架构

CREATE SCHEMA schema_name_clause [ <schema_element> […n]]

<schema_name_clause> ::=

{

Schema_name

|AUTHORIZATION owner_name

}

<schema_element>::=

{

Table_definition | view definition | grant_statement

Revoke_statement | deny_statement

}

聚集索引和非聚集索引

聚集索引确定表中数据的物理顺序。一个表中只能包含一个聚集索引。聚集索引对于那些经常要搜索范围值的列特别有效

在什么情况下使用聚集索引:

  • 含有大量非重复值的列
  • 使用BETUEEN,>,>=,<或<=返回一个范围值的列
  • 被连续访问的列
  • 返回大型结果集的查询
  • 经常被使用连接或GROUP BY子句的查询访问的列

非聚集索引的数据存储在一个位置,索引存储在另一个位置,索引中的项目按索引值的顺序存储,而表中的信息按另外一种顺序存储

每个表中可以创建的非聚集索引最多为249个

两者之间的重大区别:

数据行不按非聚集索引键的顺序排序和存储

非聚集索引的叶层不包含数据页,相反,叶节点包含索引行。

猜你喜欢

转载自blog.csdn.net/TGB_Tom/article/details/103880670