T-SQL索引

精华
小牛编辑
132浏览
2023-03-14

索引是数据库搜索引擎用来加速数据检索的唯一表格。索引是表中数据的一种指标。数据库中的索引与书末的索引相同。
例如,如果想参考书中讨论某个主题的所有页面,首先参考索引,索引一般是按字母顺序列出所有问题,然后应用于一个或多个页码。

索引选择可以帮助我们加快 where 子句出现时的查询速度,但它会减慢数据输入速度,并且包含更新和语句。不会对索引数据产生或删除任何影响。

创建索引包括一个 index create 语句,该语句为我们提供索引的名称,并以升序或降序指向索引,以指定索引中的表和列。不管是不是。

索引是唯一的,类似于 UNIQUE 约束,用于索引中以防止索引所属的两列重复条目或组合。

CREATE INDEX命令

CREATE INDEX index_name ON table_name

单列索引:
单索引是在数据库的单列中创建的。语法如下 -

CREATE INDEX index_name   
ON table_name (column_name)

示例

CREATE INDEX single-column index   
ON employees (ID)

唯一索引:
索引用于数据完整性,但不会用于显示形式。唯一索引不允许重复值插入表。语法如下所示 -

CREATE UNIQUE INDEX index_name   
on table_name (column_name)

示例

CREATE UNIQUE INDEX unique index   
on employees (NAME)

复合索引:
它用于数据库的一列或多列。语法如下所示 -

CREATE INDEX index_name on table_name (column1, column2)

示例

CREATE INDEX compositeindex   
on employees (ID, NAME)

然后,生成复合列索引或单列索引。使用 WHERE 子句的过滤条件。如果使用一列; 将有一个单列索引的选择。有两列或更多列,像过滤器一样使用 WHERE 子句时,复合索引将是最好的选择。

隐式索引
创建对象时,它由数据库服务器创建。索引是为主键约束和唯一约束创建到隐式索引中的。

删除索引命令

MS SQL SERVER DROP 命令忽略索引。语法 -

DROP INDEX index_name

如何避免使用索引?
生成索引是为了提高数据库性能,但有时需要避免它们。当以下准则指示避免使用索引时,将重新考虑使用是否需要索引 -

  • 索引不能用于小表。
  • 包含重复、大量批量更新或插入操作的表不会被索引。
  • 不要在具有多 NULL 值的列上使用索引。
  • 列经常被操纵(更新或删除)则考虑不使用索引。