建立索引

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 進行過濾,然後只檢索所需行比檢索完整表更快,特別是如果表很大。)