索引 設計準則

2021-09-08 23:15:43 字數 1163 閱讀 1735

1. 乙個表如果建有大量索引會影響 insert、update 和 delete 語句的效能,因為在表中的資料更改時,所有索引都須進行適當的調整。另一方面,對於不需要修改資料的查詢(select 語句),大量索引有助於提高效能,因為資料庫有更多的索引可供選擇,以便確定以最快速度訪問資料的最佳方法。

2. 組合索引:組合索引即多列索引,指乙個索引含有多個列。乙個組合索引相當於多個單列索引,如索引(cola, colb, colc)至少相當於(cola)、(cola, colb)、(cola, colb, colc)三個索引。

2. 覆蓋的查詢可以提高效能。覆蓋的查詢是指查詢中所有指定的列都包含在同乙個索引(組合索引)中。例如,如果在乙個表的 a、b 和 c 列上建立了組合索引,則從該表中檢索 a 和 b 列的查詢被視為覆蓋的查詢。建立覆蓋乙個查詢的索引可以提高效能,因為該查詢的所有資料都包含在索引自身當中;檢索資料時只需引用表的索引頁,不必引用資料頁,因而減少了 i/o 總量。儘管給索引新增列以覆蓋查詢可以提高效能,但在索引中額外維護更多的列會產生更新和儲存成本。

3. 對小型表進行索引可能不會產生優化效果,因為資料庫在遍歷索引以搜尋資料時,花費的時間可能會比簡單的表掃瞄還長。

5. 可以在檢視上指定索引。

6. 可以在計算列上指定索引。

7. 避免在索引列上使用is null和is not null。避免在索引中使用任何可以為空的列,資料庫將無法使用該索引。對於單列索引,如果列包含空值,索引中將不存在此記錄;對於復合索引,如果每個列都為空,索引中同樣不存在此記錄. 如果至少有乙個列不為空,則記錄存在於索引中。

8. 如果經常檢索包含大量資料的表中的少於15%的行則需要建立索引。

9. 衡量索引效率的 95/5 規則:如果查詢的結果返回的行數少於表中所有行的5%,則索引是檢索資料的最快方法,如果查詢的結果超過5%,那麼通常使用索引就不是最快的方式。

10.主關鍵字和唯一關鍵字所在的列自動具有索引,但外部關鍵字沒有自動索引。

二、索引的特徵     在確定某一索引適合某一查詢之後,可以自定義最適合具體情況的索引型別。索引特徵包括:

●聚集還是非聚集 ●唯一還是不唯一 ●單列還是多列 ●索引中的列順序為公升序還是降序(索引預設為公升序,但目前多數大型資料庫已經能夠支援反向索引) ●覆蓋還是非覆蓋 ●還可以自定義索引的初始儲存特徵,通過設定填充因子優化其維護,並使用檔案和檔案組自定義其位置以優化效能。 ●位對映索引(bitmap)

索引 設計準則

1.乙個表如果建有大量索引會影響 insert update 和 delete 語句的效能,因為在表中的資料更改時,所有索引都須進行適當的調整。另一方面,對於不需要修改資料的查詢 select 語句 大量索引有助於提高效能,因為資料庫有更多的索引可供選擇,以便確定以最快速度訪問資料的最佳方法。2.組...

MS SQL 索引設計的準則

ms sql 索引設計的準則 一.經常被用來搜尋資料記錄的字段 1.primary 約束所定義的作為主鍵的字段 自動建立 2.unique約束所定義的字段 自動建立 3.foreign key 約束所定義的作為外來鍵的字段 4.在查詢中用來連線表的字段 5.經常用來作為排序基準的字段 二.索引會占用...

DB2 索引設計準則

db2 索引設計準則 1.乙個表如果建有大量索引會影響 insert update 和 delete 語句的效能,因為在表中的資料更改時,所有索引都須進行適當的調整。另一方面,對於不需要修改資料的查詢 select 語句 大量索引有助於提高效能,因為資料庫有更多的索引可供選擇,以便確定以最快速度訪問...