3 回答

TA貢獻1887條經(jīng)驗 獲得超5個贊
一個覆蓋索引是一個包含所有的,甚至更多的指標,您需要為您查詢列。
例如,這:
SELECT *
FROM tablename
WHERE criteria
通常將使用索引來加快使用條件檢索哪些行的分辨率,但隨后它將轉(zhuǎn)到完整表以檢索行。
但是,如果索引包含column1,column2和column3列,則此sql:
SELECT column1, column2
FROM tablename
WHERE criteria
并且,如果可以使用特定的索引來加快要檢索的行的解析度,則該索引已經(jīng)包含了您感興趣的列的值,因此不必去表中檢索行,但可以直接從索引產(chǎn)生結(jié)果。
如果您看到典型的查詢使用1-2列來解析哪些行,然后通常添加另外1-2列,則也可以使用此方法,最好追加這些額外的列(如果它們在整個過程中都是相同的)添加到索引,以便查詢處理器可以從索引本身獲取所有內(nèi)容。

TA貢獻1942條經(jīng)驗 獲得超3個贊
覆蓋指數(shù)只是普通指數(shù)。如果它可以滿足查詢而無需分析數(shù)據(jù),則稱為“覆蓋”。
例:
CREATE TABLE MyTable
(
ID INT IDENTITY PRIMARY KEY,
Foo INT
)
CREATE NONCLUSTERED INDEX index1 ON MyTable(ID, Foo)
SELECT ID, Foo FROM MyTable -- All requested data are covered by index
這是從SQL Server檢索數(shù)據(jù)的最快方法之一。
- 3 回答
- 0 關注
- 579 瀏覽
添加回答
舉報