說到這里可能會有人疑惑,我在性別列上建一個索引,性別只有兩個值男、女,當我我們查詢條件中有性別這個字段時最起碼會過濾掉一半的數據,能大幅縮小我們需要檢索的數據范圍,怎么會沒用呢?(事實上這也是我曾經困惑的地方),對我們理解的沒錯,比如說Users表性別列Gender上建立索引IX_Gender,執行select Gender from Users where Gender='男' ,這個查詢效率非常高而且也成功使用了索引IX_Gender,然而我們這樣寫SQL的時候少之又少,更多的我們會寫這樣的SQL:select UserID,UserName,Phone,Email from Users where Gender='男' 這時再去看看查詢計劃根本沒用使用索引IX_Gender,而是進行了一個聚集索引掃描或者表掃描,查詢條件where Gender='男' 明明在IX_Gender里面定義了,為什么沒使用呢,這一切罪惡的根源就在于書簽查找(RID、鍵查找),好了關于書簽查找不是我們要討論的話題,在這里只想告訴大家,索引不是萬能的,索引不是創建了就一定有效。