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筆記 之 索引 index
1.索引分類 a 唯一索引,作用是資料約束,保證資料唯一,還有就是資料索引,提高查詢效率 b 一般索引,只有資料索引的作用,2.唯一索引的建立 create unique index 索引名 on 表名 欄位名 ok,假設有乙個emploeyy表,裡面有乙個empname欄位,我們來為empname...
sql 索引 index之oracle篇
今天嘗試一下,以面試官的視角來說說索引。面試官 看你做過一段時間的資料庫維護,簡單介紹下索引吧?你 索引是為表服務的一種資料結構,預設是b tree balance tree,平衡樹 它可以幫助提高查詢速度,但是會占用額外的磁碟空間。面試官 你剛剛說的那個b tree介紹一下?你 b tree規定如...
oracle建立 索引index,新增主鍵 外來鍵
create unique index 索引名 on 表名 想要建立索引的列名 tablespace 表空間名 1.建表 create table bm samerouteanalysetask id number 9 name varchar2 255 code varchar2 255 memo...