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