Oracle筆記 之 索引 index

2021-06-05 16:24:12 字數 1505 閱讀 4466

1.索引分類

a) 唯一索引,    作用是資料約束,保證資料唯一,還有就是資料索引,提高查詢效率

b)一般索引,只有資料索引的作用,

2.唯一索引的建立

create unique index 索引名 on    表名(欄位名)

ok,假設有乙個emploeyy表,裡面有乙個empname欄位,我們來為empname新增唯一索引

create unique indexidx_empnameonemployee(empname);

3.一般索引

create index 索引名 on 表名(欄位名)

ok,現在我們為employee的address欄位,新增一般索引

create indexidx_addressonemployee(address);

我們還可以為兩多個字段建立索引

create unique index idx_test on employee(field1,field2);

這樣,為field1,field2新增了唯一索引,field1和field2的組合是唯一的了

還可以指定索引排序

create index idx_test    employee(field1 ,field2 desc);;

4.函式索引

如果在我們的查詢條件使用了函式,那麼索引就不可用了。

可以用建立函式索引的方式,來解決這個問題

例如:select * from product where nvl(price,0.0)>1000.0 ;

這裡,nvl(price,0.0)使用了函式,索引不能利用price欄位上做的索引了

ok,我們來建立函式索引

create index index_price on product(nvl(price,0.0));

5.索引的刪除

drop index 索引名

drop index idx_empname;

6.其它的

唯一索引能極大的提高查詢速度,而且還有唯一約束的作用

一般索引,只能提高30%左右的速度

經常插入,修改,應在查詢允許的情況下,儘量減少索引,因為新增索引,插入,修改等操作,需要更多的時間

可以在order by的字段,where的條件字段,join的關聯字段新增索引

比如:select * from table1   t1

left join table2   t2 on t1.欄位a=t2.欄位b

where t1.欄位c = '值'

order by t1.欄位d

這裡,a,b,c,d欄位,都應該新增索引

oracle 索引 之B TREE 索引

索引是oracle裡面的乙個非常重要的知識,oracle10g中索引可以分為以下 b tree indexes b tree cluster indexes hash cluster indexes reverse key indexes bitmap indexes bitmap join ind...

Oracle索引之Btree索引

日常開發中,對於資料的查詢如果需要優化,常聽說要加個索引。但是為什麼加了索引,資料的查詢就快了呢?那是不是加了索引就一定會是有效或者有利的呢?oracle中常見有btree索引,位圖索引和函式索引。我們今天就先介紹一下這個btree索引吧。既然叫btree索引,那就從它的樹結構說起 建btree索引...

Oracle索引之Btree索引

日常開發中,對於資料的查詢如果需要優化,常聽說要加個索引。但是為什麼加了索引,資料的查詢就快了呢?那是不是加了索引就一定會是有效或者有利的呢?oracle中常見有btree索引,位圖索引和函式索引。我們今天就先介紹一下這個btree索引吧。既然叫btree索引,那就從它的樹結構說起 建btree索引...