MySQL自適應雜湊索引的特點和缺陷介紹和歸納

chenfeng發表於2018-07-06
InnoDB緩衝池用來存放各種資料的快取,包括有索引頁、資料頁、undo頁、插入緩衝、自適應雜湊索引、innodb儲存的鎖資訊、資料字典資訊等,自適應雜湊索引則是mysql innodb緩衝池的一部分。

Innodb儲存引擎會監控對錶上二級索引的查詢,如果發現某二級索引被頻繁訪問,二級索引成為熱資料,透過建立雜湊索引可以帶來速度的提升。
檢視自適應hash索引功能被開啟引數:


mysql> show variables like '%ap%hash_index';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| innodb_adaptive_hash_index | ON    |
+----------------------------+-------+
1 row in set (0.01 sec)


  經常訪問的二級索引資料會自動被生成到hash索引裡面去(最近連續被訪問三次的資料),自適應雜湊索引透過緩衝池的B+樹構造而來,因此建立的速度很快。


特點:


  1)、無序,沒有樹高


  2)、降低對二級索引樹的頻繁訪問資源


    索引樹高<=4,訪問索引:訪問樹、根節點、葉子節點


  3)、自適應


缺陷:


  1)、hash自適應索引會佔用innodb buffer pool;


  2)、自適應hash索引只適合搜尋等值的查詢,如select * from table where index_col='xxx',而對於其他查詢型別,如範圍查詢,是不能使用的;


  3)、極端情況下,自適應hash索引才有比較大的意義,可以降低邏輯讀。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2157462/,如需轉載,請註明出處,否則將追究法律責任。

相關文章