1. 程式人生 > 其它 >MySQL索引的分類

MySQL索引的分類

1、B+樹索引

B+樹是為磁碟或其他直接存取輔助裝置設計的一種平衡查詢樹。在 B+ 樹中,所有記錄節點都是按鍵值的大小順序存放在同一層的葉子節點上,由各葉子節點指標進行連線。在資料庫中,B+ 樹的高度一般都在 2~4 層,這也就是說查詢某一鍵值的行記錄時最多隻需要 2 到 4 次IO 。這很不錯,因為當前一般的機械磁碟每秒至少可以做 100 次 IO 2~4 次的 IO 意味著查詢時間只需 0.02~0.04 秒。 B+ 樹索引還可以分為聚集索引和輔助索引,但不管是聚集索引還是輔助索引,其內部都是 B+ 樹的,即高度平衡的,葉子節點存放著所有的資料。聚集索引與輔助索引不同的是,葉子節點存放的是否是一整行的資訊。

2、雜湊索引:

InnoDB儲存引擎支援的雜湊索引是自適應的, InnoDB 儲存引擎會根據表的使用情況自動為表生成雜湊索引,不能人為干預是否在一張表中生成雜湊索引。

3、全文索引

全文索引是一種特殊型別的索引,它查詢的是文字中的關鍵詞,而不是直接比較索引中的值。全文搜尋和其他幾類索引的匹配方式完全不一樣。它有許多需要注意的細節,如停用詞、詞幹和複數、布林搜尋等。全文索引更類似於搜尋引擎做的事情,而不是簡單的 WHERE 條件匹配。