MySQL - 索引類型
主鍵索引(Primary Key)
數據表的主鍵列使用的就是主鍵索引。
一張數據表有只能有一個主鍵,並且主鍵不能為 null,不能重復。
在 MySQL 的 InnoDB 的表中,當沒有顯示的指定表的主鍵時,InnoDB 會自動先檢查表中是否有唯一索引且不允許存在null值的字段,如果有,則選擇該字段為默認的主鍵,否則 InnoDB 將會自動創建一個 6Byte 的自增主鍵。
二級索引(輔助索引)
二級索引又稱為輔助索引,是因為二級索引的葉子節點存儲的數據是主鍵。也就是說,通過二級索引,可以定位主鍵的位置。
唯一索引,普通索引,前綴索引等索引屬於二級索引。
- 唯一索引(Unique Key) :唯一索引也是一種約束。唯一索引的屬性列不能出現重復的數據,但是允許數據為 NULL,一張表允許創建多個唯一索引。 建立唯一索引的目的大部分時候都是為了該屬性列的數據的唯一性,而不是為了查詢效率。
- 普通索引(Index) :普通索引的唯一作用就是為了快速查詢數據,一張表允許創建多個普通索引,並允許數據重復和 NULL。
- 前綴索引(Prefix) :前綴索引只適用於字符串類型的數據。前綴索引是對文本的前幾個字符創建索引,相比普通索引建立的數據更小, 因為只取前幾個字符。
- 全文索引(Full Text) :全文索引主要是為了檢索大文本數據中的關鍵字的信息,是目前搜索引擎數據庫使用的一種技術。
