MYSQL資料庫四種索引型別介紹

2021-10-24 06:41:09 字數 1746 閱讀 2248

主鍵索引:

主鍵是一種唯一性索引,但它必須指定為primary key,每個表只能有乙個主鍵。

唯一索引:

索引列的所有值都只能出現一次,即必須唯一,值可以為空。

普通索引 :

基本的索引型別,值可以為空,沒有唯一性的限制。

全文索引:

全文索引的索引型別為fulltext。全文索引可以在varchar、char、text型別的列上建立。可以通過alter table或create index命令建立。對於大規模的資料集,通過alter table(或者create index)命令建立全文索引要比把記錄插入帶有全文索引的空表更快。myisam支援全文索引,innodb在mysql5.6之後支援了全文索引。

1.為什麼我們新增完索引後查詢速度為變快?

傳統的查詢方法,是按照表的順序遍歷的,不論查詢幾條資料,mysql需要將表的資料從頭到尾遍歷一遍

在我們新增完索引之後,mysql一般通過btree演算法生成乙個索引檔案,在查詢資料庫時,找到索引檔案進行遍歷(折半查詢大幅查詢效率),找到相應的鍵從而獲取資料

2.建立索引的缺點

2.1建立索引是為產生索引檔案的,占用磁碟空間

2.2索引檔案是乙個二叉樹型別的檔案,可想而知我們的dml操作同樣也會對索引檔案進行修改,所以效能會下降

3.在哪些column上使用索引?

3.1較頻繁的作為查詢條件字段應該建立索引

3.2唯一性太差的字段不適合建立索引,儘管頻繁作為查詢條件,例如gender性別字段

3.3更新非常頻繁的字段不適合作為索引

3.4不會出現在where子句中的字段不該建立索引

== 總結: 滿足以下條件的字段,才應該建立索引.

a: 肯定在where條經常使用 b: 該字段的內容不是唯一的幾個值 c: 字段內容不是頻繁變化。==

mysql資料庫兩種索引方法有幾種?

1. hash

hash就是一種(key=>value)形式的鍵值對,如數學中的函式對映,允許多個key對應相同的value,但不允許乙個key對應多個value。正是由於這個特性,hash很適合做索引,hash索引可以一次定位。

侷限性1)hash 索引僅僅能滿足"=",「in"和」<=>"查詢,不能使用範圍查詢。

(2)hash 索引無法被用來避免資料的排序操作。

由於 hash 索引中存放的是經過 hash 計算之後的 hash 值,而且hash值的大小關係並不一定和 hash 運算前的鍵值完全一樣,所以資料庫無法利用索引的資料來避免任何排序運算;

(3)hash 索引不能利用部分索引鍵查詢。

對於組合索引,hash 索引在計算 hash 值的時候是組合索引鍵合併後再一起計算 hash 值,而不是單獨計算 hash 值,所以通過組合索引的前面乙個或幾個索引鍵進行查詢的時候,hash 索引也無法被利用。

(4)hash 索引在任何時候都不能避免表掃瞄。

2. btree

btree索引就是一種將索引值按一定的演算法,存入乙個樹形的資料結構中

btree在myisam裡的形式和innodb稍有不同

在 innodb裡,有兩種形態:一是primary key形態,其leaf node裡存放的是資料,而且不僅存放了索引鍵的資料,還存放了其他欄位的資料。二是secondary index,其leaf node和普通的btree差不多,只是還存放了指向主鍵的資訊.

而在myisam裡,主鍵和其他的並沒有太大區別。不過和innodb不太一樣的地方是在myisam裡,leaf node裡存放的不是主鍵的資訊,而是指向資料檔案裡的對應資料行的資訊.

MYSQL資料庫四種索引型別的簡單使用

mysql資料庫索引型別包括普通索引,唯一索引,主鍵索引與組合索引,這裡對這些索引的做一些簡單描述 1 普通索引 這是最基本的mysql資料庫索引,它沒有任何限制。它有以下幾種建立方式 建立索引 create index indexname on mytable username length 如果...

MYSQL資料庫四種索引型別的簡單使用

mysql資料庫索引型別包括普通索引,唯一索引,主鍵索引與組合索引,這裡對這些索引的做一些簡單描述 1 普通索引 這是最基本的mysql資料庫索引,它沒有任何限制。它有以下幾種建立方式 建立索引 create index indexname on mytable username length 如果...

MySQL四種常用索引型別

提到mysql優化,索引優化是必不可少的。其中一種優化方式 索引優化,新增合適的索引能夠讓專案的併發能力和抗壓能力得到明顯的提公升。我們知道專案效能的瓶頸主要是在 查 select 語句,要提公升 查 這一效能,mysql索引是必不可少的。接下來總結一下mysql常見的四種索引 一.四種索引 主鍵索...