mysql索引的分類

2021-09-29 16:10:24 字數 967 閱讀 1644

根據索引的儲存方式分類:

1. b-樹索引(目前大部分的索引都是採用 b-樹索引來儲存的,如:innodb)

元件: 

葉子節點:包含的條目直接指向表裡的資料行。葉子節點之間彼此相連,乙個葉子節點有乙個指向下乙個葉子節點的指標。

分支節點:包含的條目指向索引裡其他的分支節點或者葉子節點。

根節點:乙個 b-樹索引只有乙個根節點,實際上就是位於樹的最頂端的分支節點。

約束:b-樹索引必須遵循左邊字首原則

查詢必須從索引的最左邊的列開始

2. 雜湊索引(mysql目前僅有 memory 儲存引擎和 heap 儲存引擎支援這類索引, memory 儲存引擎可以支援 b- 樹索引和 hash 索引,且將 hash 當成預設索引)

原理:根據索引列對應的雜湊值的方法獲取表的記錄行,訪問速度快

缺點:mysql 需要讀取表中索引列的值來參與雜湊計算,雜湊計算是乙個比較耗時的操作。也就是說,相對於 b- 樹索引來說,建立雜湊索引會耗費更多的時間。

不能使用 hash 索引排序

hash 索引只支援等值比較,如「=」「in()」或「<=>」

根據索引的具體用途分類:

1、普通索引:最基本的索引型別,唯一任務是加快對資料的訪問速度,沒有任何限制。建立普通索引時,通常使用的關鍵字是 index 或 key。

2、唯一索引:表上乙個字段或者多個欄位的組合建立的索引,這些字段組合起來能夠確定唯一,允許存在空值(只允許存在一條空值).

建立唯一性索引的目的往往不是為了提高訪問速度,而是為了避免資料出現重複。

3、主鍵索引:不允許值重複或者值為空,並且每個表只能有乙個主鍵。必須指定關鍵字 primary key。

4、空間索引:建立空間索引時,使用spatial關鍵字。要求,引擎為myisam,建立空間索引的列,必須將其宣告為not null

5、全文索引:全文索引只能在 varchar 或 text 型別的列上建立,並且只能在 myisam 表中建立。

mysql的索引分類

1.主鍵索引 不能重複,只有乙個 alter table table name add primary key column 2.唯一索引 類似主鍵,列不能重複 alter table table name add unique column 3.普通索引 alter table table nam...

Mysql 的索引分類

1.新增primary key 主鍵索引 alter table table name add primary key column 2.新增unique 唯一索引 alter table table name add unique column 3.新增index 普通索引 alter table...

mysql索引分類

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