當前位置:
首頁 > 知識 > InnoDB關鍵特性之自適應hash索引

InnoDB關鍵特性之自適應hash索引

一、索引的資源消耗分析

1、索引三大特點

1、小:只在一個到多個列建立索引

2、有序:可以快速定位終點

3、有棵樹:可以定位起點,樹高一般小於等於3

2、索引的資源消耗點

1、樹的高度,順序訪問索引的數據頁,索引就是在列上建立的,數據量非常小,在內存中;

2、數據之間跳著訪問

1、索引往表上跳,可能需要訪問表的數據頁很多;

2、通過索引訪問表,主鍵列和索引的有序度出現嚴重的不一致時,可能就會產生大量物理讀;

資源消耗最厲害:通過索引訪問多行,需要從表中取多行數據,如果無序的話,來回跳著找,跳著訪問,物理讀會很嚴重。

二、自適應hash索引原理

1、原理過程

InnoDB關鍵特性之自適應hash索引

Innodb存儲引擎會監控對錶上二級索引的查找,如果發現某二級索引被頻繁訪問,二級索引成為熱數據,建立哈希索引可以帶來速度的提升,則:

1、自適應hash索引功能被打開

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

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

2、特點

1、無序,沒有樹高

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

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

3、自適應

3、缺陷

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

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

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

三、監控與關閉

1、狀態監控

mysql> show engine innodb statusG
……
Hash table size 34673, node heap has 0 buffer(s)
0.00 hash searches/s, 0.00 non-hash searches/s

1、34673:位元組為單位,佔用內存空間總量

2、通過hash searches、non-hash searches計算自適應hash索引帶來的收益以及付出,確定是否開啟自適應hash索引

2、限制

1、只能用於等值比較,例如=, <=>,in

2、無法用於排序

3、有衝突可能

4、MySQL自動管理,人為無法干預。

3、自適應哈希索引的控制

由於innodb不支持hash索引,但是在某些情況下hash索引的效率很高,於是出現了adaptive hash index功能,但是通過上面的狀態監控,可以計算其收益以及付出,控制該功能開啟與否。

默認開啟,建議關掉,意義不大。可以通過 set global innodb_adaptive_hash_index=off/on 關閉和打開該功能。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

httpclient連接池相關參數的坑
lambda表達式的學習
Android 基於 Speex 的高度封裝語音庫,0 耦合,沒三方jar包
echarts添加點擊事件

TAG:達人科技 |

您可能感興趣

TOP1.2 關鍵績效指標 Key Performance Indicator
OpenStack關鍵技術系列:Libvirt基礎知識
Pawlotsky教授:再談hcv,初始治療選擇是關鍵
蘋果的抉擇 OLED成新iPhone價格關鍵
新欄目上線,三個關鍵詞:Global, Inspiring, Weekly | TechBoard
Pinteres搜索引擎優化,關鍵詞很重要
George Keburia|中性美是他品牌的關鍵詞,他跟Vetements創始人來自一個地方
OpenStack關鍵技術系列:最全OpenStack知識科普
Super Bowl?Fashion Bowl!賈老闆為你揭秘開年潮流關鍵詞!
Cell Death Differ:維持間質幹細胞「全能型」的關鍵基因
關鍵詞:Snapseed
演算法channel關鍵詞和文章索引
VBScript 關鍵字
VMware vSphere 6.7關鍵技術和新特性解析
Python指南:Python的8個關鍵要素
安卓機想完美複製iPhone X劉海卡在關鍵一步:Face ID太貴用不起
NYPD:掌握很多關於Weinstein的關鍵證據,準備逮捕
vivo要逆襲國產iPhoneX?關鍵在於是否「高價低配」
Google Adwords 關鍵字工具怎麼用?
Imperva高級數據隱私顧問詳解GDPR關鍵應對措施