日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql:InnoDB关键特性:自适应哈希索引(AHI)

發布時間:2023/12/20 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql:InnoDB关键特性:自适应哈希索引(AHI) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、自適應哈希索引(Adaptive Hash Index,AHI)

1. 定義

哈希(hash)是一種非常快的查找方法,在一般情況下這種查找的時間復雜度為O(1),即一般僅需要一次查找就能定位數據。而B+樹的查找次數,取決于B+樹的高度,在生產環境中,B+樹的高度一般為3~4層,故需要3~4次的查詢。

InnoDB存儲引擎會監控對表上各索引頁的查詢。如果觀察到建立哈希索引可以帶來速度提升,則建立哈希索引,稱之為自適應哈希索引(Adaptive Hash Index,AHI)。AHI是通過緩沖池的B+樹頁構造而來,因此建立的速度很快,而且不需要對整張表構建哈希索引。InnoDB存儲引擎會自動根據訪問的頻率和模式來自動地為某些熱點頁建立哈希索引。

2. AHI要求

  • 對這個頁的連續訪問模式必須是一樣的。
  • 以該模式訪問了100次
  • 頁通過該模式訪問了N次,其中N=頁中記錄*1/16

例如對于(a,b)這樣的聯合索引頁,其訪問模式可以是以下情況:
?WHERE a=xxx
?WHERE a=xxx and b=xxx
訪問模式一樣指的是查詢的條件一樣,若交替進行上述兩種查詢,那么InonDB存儲引擎不會對該頁構造AHI。

3. AHI效果

根據InnoDB存儲引擎官方的文檔顯示,啟用AHI后,讀取和寫入速度可以提高2倍,輔助索引的連接操作性能可以提高5倍。毫無疑問,AHI是非常好的優化模式,其設計思想是數據庫自優化的(self-tuning),即無需DBA對數據庫進行人為調整。

4. 設置AHI開啟與關閉

mysql> show variables like 'innodb_adaptive_hash_index'; +----------------------------+-------+ | Variable_name | Value | +----------------------------+-------+ | innodb_adaptive_hash_index | ON | +----------------------------+-------+

默認是開啟的

5. 查看AHI的使用情況

mysql>SHOW ENGINE INNODB STATUS\G; ***************************1.row*************************** Status: ===================================== 090922 11:52:51 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 15 seconds …… ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf:size 2249,free list len 3346,seg size 5596, 374650 inserts,51897 merged recs,14300 merges Hash table size 4980499,node heap has 1246 buffer(s) 1640.60 hash searches/s,3709.46 non-hash searches/s ……

現在可以看到AHI的使用信息了,包括AHI的大小、使用情況、每秒使用AHI搜索的情況。值得注意的是,哈希索引只能用來搜索等值的查詢,如SELECT*FROM table WHERE index_col=‘xxx’。而對于其他查找類型,如范圍查找,是不能使用哈希索引的,因此這里出現了non-hash searches/s的情況。通過hash searches:non-hash searches可以大概了解使用哈希索引后的效率。

總結

以上是生活随笔為你收集整理的mysql:InnoDB关键特性:自适应哈希索引(AHI)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。