mysql等值查詢,mysql索引數(shù)據(jù)結(jié)構(gòu)區(qū)別?
全文索引、聚集索引、哈希索引、b+樹索引等 B+樹的簡單定義:B+樹是為磁盤或其他存儲設(shè)備設(shè)計的一種平衡查找樹。B+樹中所有記錄都是按鍵值大小順序存放在葉子節(jié)點上,各葉子節(jié)點通過指針進行連接。
哈希索引(Hash indexes)采用哈希表來對鍵值進行查找,時間復(fù)雜度為O(1)。
使用哈希索引時對于鍵值的等值查詢是非常快的,但是其他類型的查詢?nèi)绶秶樵儭⒛:樵儭⑴判虻仁遣荒苁褂霉K饕摹?/p>
這是哈希索引使用比較少的主要原因。
聚集索引(Clustered Index)又稱聚簇索引,其葉子節(jié)點存放記錄。 每個InnoDB 表有一個特定的索引叫做聚集索引,存儲行的數(shù)據(jù)。
如果你的表定義了主鍵那么主鍵就是聚集索引,如果沒有定義主鍵,MySQL 會選擇第一個非空唯一索引列作為聚集索引,如果表中也沒有唯一索引,InnoDB會生成一個類似RowId的隱藏的聚集索引。 全文索引查找條件使用 MATCH AGAINST。 全文索引(Full-text search indexes)使用倒排索引(inverted index)實現(xiàn)。
倒排索引會記錄文本中的每個關(guān)鍵字出現(xiàn)在文檔中的位置。