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代表的是它的三個子樹...