當前位置:成語大全網 - 書法字典 - 有哪幾種數據庫索引?如何建立索引?

有哪幾種數據庫索引?如何建立索引?

類型:

1.根據索引列值的唯壹性,索引可以分為唯壹索引和非唯壹索引;

非唯壹索引:

在表名(列名)表空間上創建索引索引名?表空間名稱;

唯壹索引:

創建主鍵或唯壹約束時,將在相應的列上自動創建唯壹索引;

2.索引列數:單列索引和復合索引;

3.根據索引列的物理組織。

索引創建格式:?

創造?獨壹無二。|?位圖?指數?& lt架構& gt。& ltindex _ name & gt?開嗎?& lt架構& gt。& lt表名& gt?(& ltcolumn_name》?|?& lt表情& gt?ASC?|?DESC,& ltcolumn_name》?|?& lt表情& gt?ASC?|?DESC,...)?表空間?& lt表空間名& gt?存儲?& lt存儲設置& gt?伐木?|?無日誌記錄?計算?統計學?沒有壓力?|?壓縮& ltnn & gt?NOSORT?|?反轉?分區?|?全球?分區& ltpartition _ setting & gt使用USER_IND_COLUMNS查詢表中相應字段索引的建立。

使用DBA_INDEXES/USER_INDEXES查詢所有索引的具體設置。

Oracle中的索引可以分為:B樹索引、位圖索引、反向鍵索引、基於函數的索引、簇索引、全局索引、局部索引等。下面逐壹解釋:

壹、B樹指數:

在最常用的索引中,每個葉節點中包含的數據包括索引列的值和數據表中相應行的rowids。簡單來說,在B樹索引中,快速查詢的目的是通過將索引列的值和相應記錄的rowids保存在索引中來實現的。其邏輯結構如下:

可以保證無論用戶想要搜索葉節點的哪個分支,都需要經過相同的索引級別,即都需要相同的I/O次數。

創建B樹索引的示例:

是否在t 1(id)上創建索引ind_t?;

註意1:索引是為字段創建的,不能為同壹個字段創建多個索引。

註意2:默認索引不是唯壹的,但也可以添加unique,表示索引的字段中沒有重復值(在定義unique約束時會自動創建);

註意3:創建主鍵時,默認情況下在主鍵上創建B樹索引,因此不能在主鍵上創建更多索引。

二、位圖索引:

在某些領域使用B樹索引的效率仍然不高。例如,如果性別字段中只有“男性和女性”兩個值,即使使用B樹索引,搜索時也會返回近壹半的記錄。

所以當壹個字段的基數很低時,就需要使用位圖索引。(“低”的標準是值的數量

位圖索引的邏輯結構如上圖所示:索引中不再記錄rowid和key值,而是將每個值作為壹列,並用0和1來表示行是否等於key值(0表示否;1表示是)。其中,位圖索引的行順序與原始表的行順序壹致,因此在查詢數據的過程中可以相應地計算出行程的原始物理位置。

創建位圖索引的示例:

在t1(類型)上創建位圖索引ind _ t;

註意:位圖索引不能是唯壹的索引,也不能與鍵值壹起壓縮。

三、反向關鍵指標:

考慮這種情況:壹個字段的值依次為1-1000,在建立B樹索引後,該值仍將增加,然後B編號索引將在後面繼續添加分支,這將形成壹個不對稱的樹,如下所示:

反向鍵索引是壹種特殊的B樹索引,它與存儲結構中的B樹索引完全相同。但是,對於數值,反向鍵索引將首先反轉每個鍵值的字節,然後在反轉後索引新數據。例如,輸入2008被轉換為8002,因此當該值增加壹次時,反向鍵的大小分布仍然相對均勻。

創建反向鍵索引的示例:

創造?t 1(id)反向索引ind _ t;

註意:鍵反轉由系統自己完成。對用戶透明。

第四,基於功能的索引:

有時,需要以下查詢:select * from t 1 where to _ char(date,‘yyyy’)》‘2007’;

然而,即使在日期字段上建立了索引,也必須掃描整個表。在這種情況下,可以使用基於函數的索引。其創建語法如下:

在t1上創建索引ind _ t(to _ char(date,‘yyyy‘));

註意:簡單地說,基於函數的索引是指將查詢中要使用的表達式作為索引項。

動詞 (verb的縮寫)全局索引和本地索引:

這個指數看似復雜,但實際上非常簡單。總之,不管怎麽分區,都是為了方便管理。

特定索引和表之間有三種關系:

1,本地分區索引:分區索引和分區表1對1。

2.全局分區索引:分區索引和分區表是n對n。

3.全局非分區索引:非分區索引和分區表1對n。

創建壹個示例:

首先,創建分區表

創造?餐桌學生

斯圖諾數(5),

sname VRV har 2(10),

存款編號(5)

)

哈希分區(deptno)

part_01表空間A1,

分區part_02表空間A2

);

創建本地分區索引(1v1):

對學生創建索引索引(stuno)

本地(

part_01表空間A2,

分區part_02表空間A1

);?-本地可以被忽略。

創建全局分區索引(NvN):

對學生創建索引索引(stuno)

全球?按範圍劃分(stuno)

分區p1的值小於(1000)表空間A1,

分區p2值小於(最大值)表空間A2

);?-只能執行範圍分區。

創建全局非分區索引(1vN)

創造?學生(stuno)全局索引ind _ t;

根據問題的具體類型,進行步驟拆解/原因原理分析/內容拓展等。

具體步驟如下:/造成這種情況的主要原因是