SQL 创建索引


本文向大家介绍SQL 创建索引,包括了SQL 创建索引的使用技巧和注意事项,需要的朋友参考一下

示例

CREATE INDEX ix_cars_employee_id ON Cars (EmployeeId);

这将为表Cars中的EmployeeId列创建索引。此索引将提高要求服务器按EmployeeId中的值排序或选择的查询的速度,例如:

SELECT * FROM Cars WHERE EmployeeId = 1

索引可以包含多于1列,如下所示;

CREATE INDEX ix_cars_e_c_o_ids ON Cars (EmployeeId, CarId, OwnerId);

在这种情况下,如果条件集的排序方式相同,则该索引对于要求对所有包含的列进行排序或选择的查询很有用。这意味着在检索数据时,它可以使用索引找到要检索的行,而不用查看整个表。

例如,以下情况将利用第二个索引;

SELECT * FROM Cars WHERE EmployeeId = 1 Order by CarId DESC

但是,如果顺序不同,则索引具有以下不同的优点;

SELECT * FROM Cars WHERE OwnerId = 17 Order by CarId DESC

索引没有帮助,因为数据库必须跨EmployeeId和CarID的所有值检索整个索引,以查找具有的项目OwnerId = 17。

(仍可以使用索引;查询优化器可能会发现检索索引并在上进行过滤OwnerId,然后仅检索所需的行比检索完整表要快,尤其是在表很大的情况下。)