mysql索引分類

2021-08-28 09:05:02 字數 1202 閱讀 8578

mysql支援哪幾種索引

1、b+樹索引(o(log(n))):關於b+樹索引,可以參考 mysql索引背後的資料結構及演算法原理

2、hash索引:

a 僅僅能滿足"=","in"和"<=>"查詢,不能使用範圍查詢

b 其檢索效率非常高,索引的檢索可以一次定位,不像b-tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的io訪問,所以 hash 索引的查詢效率要遠高於 b-tree 索引

c 只有memory儲存引擎顯示支援hash索引

3、fulltext索引(現在myisam和innodb引擎都支援了)

4、r-tree索引(用於對gis資料型別建立spatial索引)

1、聚集索引(clustered index)

2、非聚集索引(non-clustered index)

1、主鍵索引:主鍵索引是一種特殊的唯一索引,不允許有空值

2、普通索引或者單列索引

3、多列索引(復合索引):復合索引指多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用。使用復合索引時遵循最左字首集合

4、唯一索引或者非唯一索引

5、空間索引:空間索引是對空間資料型別的字段建立的索引,mysql中的空間資料型別有4種,分別是geometry、point、linestring、polygon。mysql使用spatial關鍵字進行擴充套件,使得能夠用於建立正規索引型別的語法建立空間索引。建立空間索引的列,必須將其宣告為not null,空間索引只能在儲存引擎為myisam的表中建立

create table table_name[col_name data type]

[unique|fulltext|spatial][index|key][index_name](col_name[length])[asc|desc]

1、unique|fulltext|spatial為可選引數,分別表示唯一索引、全文索引和空間索引;

2、index和key為同義詞,兩者作用相同,用來指定建立索引

3、col_name為需要建立索引的字段列,該列必須從資料表中該定義的多個列中選擇;

4、index_name指定索引的名稱,為可選引數,如果不指定,mysql預設col_name為索引值;

5、length為可選引數,表示索引的長度,只有字串型別的字段才能指定索引長度;

6、asc或desc指定公升序或降序的索引值儲存

mysql索引分類

mysql索引的概念 mysql索引是一種特殊檔案 innodb資料表上的索引是表空間的乙個組成部分 能加快資料庫的查詢時間。索引分為聚族索引和非聚族索引,聚族索引是按照資料存放的物理位置為順序的,能提高多行檢索的速度,而非聚族索引對於單行的檢索很快。mysql索引型別 1 普通索引 最基本的索引,...

mysql索引分類

索引是在mysql的儲存引擎層中實現的,而不是在伺服器層實現的。所以每種儲存引擎的索引都不一定完全相同,也不是所有的儲存引擎都支援所有的索引型別。1 btree索引 最常見的索引型別,大多數引擎都支援b樹索引。2 hash索引 只有memory引擎支援,使用場景簡單。3 rtree索引 myisam...

mysql索引分類

索引的分類 索引的型別 index class 普通索引 mysql中基本索引型別,沒有什麼限制,允許在定義索引的列中插入重複值和空值,純粹為了查詢資料更快一點。唯一索引 索引列中的值必須是唯一的,但是允許為空值 主鍵索引 是一種特殊的唯一索引,不允許有空值 全文索引 只能在char,varchar...