MySQL 索引型別

2021-10-01 23:54:02 字數 1118 閱讀 5749

mysql支援多種型別的索引。在使用時可以根據業務需求選擇合適的索引型別。

就是沒有特殊限制的索引。

示例:sql**

create index 'index_name_1' on table1 (column1);  

唯一索引所使用的列(column)值必須唯一,可以是空值,而且是允許多個空值。

如果索引引用了多列,則其組合的列值必須唯一。

示例:sql**

create unique index 'index_name_1' on table1 (column1);  

一種特殊的唯一索引,不允許列值為空值。通常在建立表時就建立主鍵索引。

示例:sql**

create table table1 (  

id int not null,  

primary key (id)  

也叫組合索引。就是指索引由多個列組成。

示例:sql**

create index 'index_name_1' on table1 (column1, column2, column3);  

多列索引的使用遵循 最左字首 原則。即,靠左邊的索引會被優先使用。

在建立組合索引時,應將使用最頻繁的列放在前面,以提高搜尋效率。

上述示例相當於建立了三個索引:column1 的單列索引、(column1, column2) 的組合索引、(column1, column2, column3) 的組合索引。

如果未指定column1,那麼這些索引都不會被使用。

where 子句中各這些列無需按照此順序排布,mysql會自動檢測調整。

用於對 geometry 之類表示空間位置型別欄位的索引。

用於對大資料量的文字字段進行索引,搜尋那些包含目標文字的記錄。非常耗時,耗儲存空間。

示例:sql**

create spatial index index_1 on table1 (column_g);  

可以使用 mysql 的 explain 表示式檢視sql查詢語句的效率。

示例:sql**

explain select * from table1 where column1 like 'a%';  

以下情況不會使用索引:

mysql索引型別介紹 mysql索引型別介紹

索引型別介紹 主鍵索引 primary key 要求關鍵字不能重複,也不能為null,同時增加主鍵約束 主鍵索引定義時,不能命名 唯一索引 unique index 要求關鍵字不能重複,同時增加唯一約束 普通索引 index 對關鍵字沒有要求 全文索引 fulltext key 關鍵字的 不是所有欄...

mysql索引型別介紹 mysql索引型別介紹

b 樹是多路平衡查詢樹,相對於平衡二叉樹,對父結點的直接子結點個數,不再僅限於2,可以指定m 自定義 這樣可以在樹的深度不大量增加的前提下,儲存更多的結點。b 樹是通常在檔案系統中使用。特點 a 樹的每個結點最多有m 自定義 子結點 b 若根結點不是葉子結點,則至少有兩個子結點 c 除根結點外的所有...

MySQL索引 索引型別

在mysql有兩種索引型別 hash b 樹 hash索引原理比較簡單就是利用了乙個hash表 說b 樹之前先要了解b 樹的資料結構。不廢話,先上圖。對b 樹做一些解釋,參考上圖。b 樹的資料都在葉子節點上 非葉子節點上的這些都是範圍。舉例 最上面的根節點上的資料是5,28,65代表的是它的三個子樹...