Oracle建立索引的原則

2021-06-27 14:34:04 字數 1309 閱讀 6842

1.資料庫建立索引的原則

鐵律一:天下沒有免費的午餐,使用索引是需要付出代價的。

鐵律二:對於查詢中很少涉及的列或者重複值比較多的列,不要建立索引。

鐵律三:對於按範圍查詢的列,最好建立索引。

鐵律四:表中若有主鍵或者外來鍵,一定要為其建立索引。

鐵律五:對於一些特殊的資料型別,不要建立索引。

鐵律六:索引可以跟where語句的集合融為一體。

建立索引常用規則:

1、表的主鍵、外來鍵必須有索引;

2、資料量超過300的表應該有索引;

3、經常與其他表進行連線的表,在連線欄位上應該建立索引;

4、經常出現在where子句中的字段,特別是大表的字段,應該建立索引;

5、索引應該建在選擇性高的字段上;

6、索引應該建在小字段上,對於大的文字字段甚至超長字段,不要建索引;

7、復合索引的建立需要進行仔細分析;盡量考慮用單字段索引代替:

a、正確選擇復合索引中的主列字段,一般是選擇性較好的字段;

b、復合索引的幾個字段是否經常同時以and方式出現在where子句中?單字段查詢是否極少甚至沒有?

如果是,則可以建立復合索引;否則考慮單字段索引;

c、如果復合索引中包含的字段經常單獨出現在where子句中,則分解為多個單字段索引;

d、如果復合索引所包含的字段超過3個,那麼仔細考慮其必要性,考慮減少復合的字段;

e、如果既有單字段索引,又有這幾個欄位上的復合索引,一般可以刪除復合索引;

f、復合索引中只要有一列含有null值,那麼這一列對於此復合索引是無效的

g.索引,不僅僅是主鍵和唯一鍵,也可以是其他的任何列。在使用like其中乙個有索引的字段列的時候。

如: select *from a name like 『***%』;

這個sql會使用name的索引(前提name建立了索引);而下面的語句就使用不了索引

select * from a name like 『%***』;

因為『%』代表任何字元,%***不知道怎麼去索引的,所以使用不了索引。

h.  

如果我們建立了(area,age,salary)的復合索引,那麼其實相當於建立了(area,age,salary),(area,age),(area)三個索引,這樣稱為最佳左前             綴特性。因此我們在建立復合索引的應該將最常用作限制條件的列放在最左邊,依次遞減。

8、頻繁進行資料操作的表,不要建立太多的索引;

9、刪除無用的索引,避免對執行計畫造成負面影響

Oracle索引建立原則

需要平衡query合dml的需要,常用於 子 查詢的表應建立索引 把索引建到不同的表空間中 用統一的extent大小 五個block的倍數或者tablespace指定的minimum extent的倍數 建立索引考慮用nologging引數,重建索引的時候也一樣 建立索引時initrans值應該比相...

Oracle建立索引的原則

1.資料庫建立索引的原則 鐵律一 天下沒有免費的午餐,使用索引是需要付出代價的。鐵律二 對於查詢中很少涉及的列或者重複值比較多的列,不要建立索引。鐵律三 對於按範圍查詢的列,最好建立索引。鐵律四 表中若有主鍵或者外來鍵,一定要為其建立索引。鐵律五 對於一些特殊的資料型別,不要建立索引。鐵律六 索引可...

索引建立的原則

索引查詢是資料庫中重要的記錄查詢方法,要不要進入索引以及在那些欄位上建立索引都要和實際資料庫系統的查詢要求結合來考慮,下面給出實際中的一些通用的原則 1.在經常用作過濾器的字段上建立索引 2.在sql語句中經常進行group by order by的字段上建立索引 3.在不同值較少的字段上不必要建立...