資料庫索引的型別

2021-08-14 10:46:34 字數 874 閱讀 8271

b-樹索引 

位圖索引 

hash索引 

索引編排表 

反轉鍵索引 

基於函式的索引 

分割槽索引 

本地和全域性索引

索引結構:

b-tree:

適合與大量的增、刪、改(oltp);

不能用包含or操作符的查詢;

適合高基數的列(唯一值多);

常在訪問小資料量的情況下比較適用,比如你訪問不超過表中資料的5%,當然這只是個相對的比率,適用於一般的情況。

典型的樹狀結構;

每個結點都是資料塊;

大多都是物理上一層、兩層或三層不定,邏輯上三層;

葉子塊資料是排序的,從左向右遞增;

在分支塊和根塊中放的是索引的範圍;

bitmap:

適合與決策支援系統;

做update代價非常高;

非常適合or操作符的查詢; 

基數比較少的時候才能建位圖索引;

在資料倉儲中使用較多,用於低基數列,比如性別之類重複值很多的字段,基數越小越好。

反轉鍵索引:

反轉索引時為了解決熱塊衝突的問題。比如有id 為1,2,3,4,5,都在索引塊的block a中。當用id =1 訪問時,訪問的是block a。

當用id =2 訪問時,訪問的是

block a。這樣就會導致索引出現熱塊(關於熱快請參考

)。如果反轉後存放,就可能1在

block a,2在

block b

訪問的是block a。

當用id =1 訪問時,訪問的是

block a。

當用id =2 訪問時,訪問的是

block b。

這樣就解決了索引的熱快問題。

資料庫索引型別

邏輯上 single column 單行索引 concatenated 多行索引 unique 唯一索引 nonunique 非唯一索引 function based函式索引 domain 域索引 物理上 partitioned 分割槽索引 nonpartitioned 非分割槽索引 b tree ...

資料庫索引型別

邏輯上 single column 單行索引 concatenated 多行索引 unique 唯一索引 nonunique 非唯一索引 function based函式索引 domain 域索引 物理上 partitioned 分割槽索引 nonpartitioned 非分割槽索引 b tree ...

mysql資料庫的索引型別

1 普通索引 最基本的索引,它沒有任何限制,用於加速查詢。建立方法 建表的時候一起建立 create table mytable name varchar 32 index index mytable name name b.建表後,直接建立索引 create index index mytable...