WHERE謂詞對索引使用的影響

2022-02-16 08:09:00 字數 2191 閱讀 8287

本篇博文只測試where謂詞對multi-column index使用的影響,主要篇幅是sql**+截圖。詳細內容請參考《inside the sql server query optimizer 》--benjamin nevarez,chapter 4:index selection-->the mechanics of index selection(page124).

1

--利用adventureworks.sales.salesorderdetail 建立臨時表

2select

*into

dbo.salesorderdetail

3from

sales.salesorderdetail4--

執行下面語句檢視執行計畫

5select productid,salesorderid,salesorderdetailid from dbo.salesorderdetail --

table scan6--

建立復合索引

7create

index multi_column on

dbo.salesorderdetail(productid,salesorderid)8--

分別執行在索引第一列、第二列的 where條件查詢

--分別執行在索引第一列、第二列的 where條件查詢

索引第一列為『=』,第二列沒含操作表示式,則兩列都可以用 seek,與where 後面的順序無關

索引第一列為『=』,第二列有操作表示式 (abs,upper,convert...),則第一列seek,第二列 scan,與where 後面的順序無關

索引第一列不是『=』,則第一列 seek,第二列scan ,與where後面的順序無關

1

drop

table dbo.salesorderdetail --

刪除測試表

mysql 索引長度對索引的影響

1 查詢頻繁 2 區分度高 3 長度小 4 盡量能覆蓋常用查詢欄位.1 索引長度直接影響索引檔案的大小,影響增刪改的速度,並間接影響查詢速度 占用記憶體多 針對列中的值,從左往右擷取部分,來建索引 1 截的越短,重複度越高,區分度越小,索引效果越不好 2 截的越長,重複度越低,區分度越高,索引效果越...

索引對查詢效率的影響

我們將利用advanturewords2008r2中的sales.salesorderdetail表,其中有12萬條資料,非常適合用於測試。不過我們不直接在這張表上做測試,因為這張表上已經有索引了。我們需要新建一張表,將該表中的資料匯入我們新建的test和test2表。test和test2的建立方法...

索引字段順序對效率的影響

個人總結幾點 1 驅動表中的索引要將區間字段 sendtime之類 放到固定值 orgid等 的後面 2 驅動表的連線字段可以放在索引最後,以避免讀取rowid 3 連線表的連線欄位要放在索引最前面。舉個例子 select count as col 0 0 from rec bankinstruct...