SQL 索引

oracle數據庫索引將在何時用到?

索引的最終目的是爲了提升查詢速度,通常建立到你常作爲查詢條件的列。
查詢唄 ,其它狀況下用不到!,並且加完索引後 增刪改 都會很慢 因此請慎重加啊!
查詢的時候,能使查詢的速度提升。不過一個索引大概佔用表1.5倍的空間。慎用。
在查詢的時候,若是查詢條件是索引的字段,那麼索引將會被用到。


索引主要用來提高數據檢索速度,在數據量很大的時候頗有用. 索引至關於圖書館的圖書目錄,你要找本書能夠在圖書目錄上
找到這本書在哪一個書架第幾本,這樣明顯比到書架去找書要快得多,索引就是這個道理. 索引在數據庫優化當中起着很是重要的做用
,
像個人網站(http://www.99sc.cn)裏面的 表基本上都建有索引, 這樣可使得個人網站數據在百萬千萬條數據的時候也不會
很慢
(只是如今數據不多,呵呵),若是沒有索引估計會很慘. 如下是網上的介紹,看看吧: 

索引簡介 

索引是表示數據的另外一種方式,它提供的數據順序不一樣於數據在磁盤上的物理存儲順序。索引的特殊做用是在表內從新排列記錄的
物理位置。索引可創建在數據表的一列上,或創建在表的幾列的組合上。 

回想一下圖書館中,存放着一架一架的圖書。假設要找一本書,圖書管理員視必要一架一架的尋找,直到找到想要的那本書爲止。
這樣的查找確定費時費力,那麼管理員能夠將全部的圖書標題按字母分類創建索引卡片,按字母順序放在不一樣的辦公抽屜中,
這樣一架一架查找圖書的過程就變成了在辦公桌前抽屜中查詢索引卡片了,很容易獲得有關這本書的信息。 

再進一步設想,圖書管理員很勤快,他不只按照圖書標題字母分類,並且還按做者姓名和出版社分別創建了另外的索引卡片,
這個過程將給借閱者在檢索圖書信息時以更大的靈活性。所以在一個數據表中是能夠創建多個索引的。 

在數據庫中,對無索引的表進行查詢通常稱爲全表掃描。全表掃描是數據庫服務器用來搜尋表的每一條記錄的過程,
直到全部符合給定條件的記錄返回爲止。這個操做能夠比做在圖書館中查書,從第一個書架的第一本書開始,瀏覽每一本書,
直到發現所要的書爲止。爲了進行高效查詢,能夠在數據表上針對某一字段創建索引,因爲該索引包括了一個指向數據的指針,
數據庫服務器則只沿着索引排列的順序對僅有一列數據的索引進行讀取(只創建一個索引)直至索引指針指向相應的記錄上爲止。
因爲索引只是按照一個字段進行查找,而沒有對整表進行遍歷,所以通常說來索引查找比全表掃描的速度快。 

那麼,是否是使用索引查詢必定比全表掃描的速度快呢?答案是否認的。若是查詢小型數據表(記錄不多)或是查詢大型數據表
(記錄不少)的絕大部分數據,全表掃描更爲實用。例如,查詢「性別」字段,其值只能是「男或女」,在其上創建索引的意義就不大
,甚至不容許在布爾型、大二進制型(備註型、圖像型等)上創建索引。 

SQL中主鍵和索引的含義與區別?

主鍵是肯定記錄惟一性的字段或幾個字段的組合
索引的目的是爲了快速檢索數據,就象一本書的目錄同樣
索引又分爲簇索引和非簇索引,簇索引只能有一個,而非簇索引能夠有多個,好比說,一本書的主目錄(簇)有一個,
在書的後面又有根據某些詞按字母排列的索引(非簇)

在一個表中,一個字段能夠同時是主鍵和索引

通常的聚簇索引是創建在一個表的主鍵上仍是其餘鍵上?
還有一個表是否是能夠建多個索引?

1.彙集索引能夠建在表的主鍵上,也能夠建在其餘鍵上;
2.一個表能夠建多個索引,但只能有一個彙集索引,其餘的索引必須是非彙集索引;

關於第1條須要說明的是,默認狀況下,當建立主鍵時,若是沒有明確指定主鍵爲非彙集選項,而且表中不存在彙集索引,
那麼系統會爲主鍵建立彙集索引.

每一個表只能建一個聚簇索引,因此必須珍惜這個資源,創建在哪一個字段上,要根據實際狀況考慮。若是一個字段咱們用來做爲查詢
條件的可能性最多,
那麼將聚簇索引創建在這個字段上,就能夠最大程度的發揮它的做用。

表上能夠創建多個非聚簇索引,但只能創建一個聚簇索引。表上的索引過多會影響性能,插入,刪除,更新的速度會變慢,
由於這個過程當中,全部的索引都須要維護。

如何在ORACLE數據庫的字段上創建索引?

create index indexname on telno(telno)

其中indexname是你標註的索引名
相關文章
相關標籤/搜索