T-SQL 索引
索引是数据库搜索引擎用于加速数据检索的唯一表。索引是表中数据的一种指示器。数据库中的索引类似于书后的索引。
例如,如果我们想要引用讨论某个主题的书中所有页面,我们首先参考索引,该索引按字母表列出所有问题,然后应用于一个或多个页码。
索引选择可帮助我们加快查询速度,尤其是在where子句出现时,但它会减缓数据输入,包括更新和语句。对索引数据不进行修改或删除。
创建索引包括索引创建语句,其中提供索引名称,并按升序或降序指向索引,以指定索引中的表和列。无论是否为此目的而创建。
索引是唯一的,并与索引属于的两个列的组合和条目重复的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子句时,有两列或更多列,则复合索引将是最佳选择。
隐式索引
当创建对象时,它由数据库服务器创建。隐式索引会为主键约束和唯一约束创建。
DROP INDEX命令
索引被忽略的MS SQL SERVER DROP命令。当索引下降时,性能会提高,因此可行。
语法:
基本语法如下。
DROP INDEX index_name
如何避免使用索引?
索引是为了增加数据库性能而生成的,但有时需要避免它们。以下准则指出需要避免索引的情况时,应重新考虑索引的使用:
- 索引不能用于小表。
- 包含重复、大量批量更新或插入操作的表不会被索引。
- 对于具有较大数量的NULL值的列,不使用索引。
- 经常操作且无法建立索引的列。