mysql中的索引有很多態別
b-tree索引
當沒有特殊的說明,意味著b-tree索引。
b-tree使用鍵生成b樹索引,當使用者查詢乙個鍵時,儲存引擎不需要進行全表搜尋,而是查詢b樹引擎。在b樹種儲存了該鍵在磁碟上的儲存位置,這樣就可以快速的定位到所查詢的資料了。
舉個例子:
creat table people(
last_name varchar(50) not null,
first_name varchar(50) not null;
dob date note null;
gender enum('m','f')not null,
key(last_name,first_name,dob)
上述使用last_name,first_name,dob三個值作為索引,生成的索引如下圖/;
當索引有多個值時,索引對多個值的排序依據的是建立語句中索引的順序。如果第一項相同,那麼使用第二項進行排序。
1.如果不是按照索引最左列開始查詢,則無法使用索引;上例中,無法使用first_name進行查詢
2.不能跳過索引中的列;上例中,不能查詢last_name為smith,而且在某個特定日期出生的人。
3.如果查詢中某個列的範圍查詢,則其右邊的所有列都無法使用索引。
雜湊索引
在mysql中,只有memory引擎顯示支援雜湊索引。雜湊索引基於雜湊表實現,所以只有精確索引才有效。如果多個值雜湊值相同,那麼索引以鍊錶的方式存在記錄中。
雜湊索引的缺點:
1.雜湊索引不是按照索引值順序儲存的,無法排序
2.雜湊所以不支援部分索引的查詢。因為是使用全值進行雜湊的
3.只支援等值比較查詢
索引的型別
為了應對不同的資料操作場景,oracle提供了若干對應的索引型別,主要的幾種型別如下 b樹索引 位圖索引 索引組織表 逆序索引 函式索引 雜湊索引 分割槽索引 本地和全域性索引 1.b樹索引 b樹索引是關係 資料庫中最基本的索引結構,也是 oracle 系統中最常見的索引形式。oracle提供的b樹...
Oracle索引 索引型別
oracle 提供了多種不同型別的索引以供使用。簡單地說,oracle 中包括如下索引 b 樹索引 這些是我所說的 傳統 索引。到目前為止,這是 oracle 和大多數其他資料庫中最常用的索引。b 樹的構造類似於二叉樹,能根據鍵提供一行或乙個行集的快速訪問,通常只需很少的讀操作就能找到正確的行。不過...
索引與索引型別
size large 索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 name 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資訊。索引是乙個單獨的 物理的資料庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值...