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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL中的自适应哈希索引

發布時間:2024/9/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL中的自适应哈希索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

眾所周知,InnoDB使用的索引結構是B+樹,但其實它還支持另一種索引:自適應哈希索引。

哈希表是數組+鏈表的形式。通過哈希函數計算每個節點數據中鍵所對應的哈希桶位置,如果出現哈希沖突,就使用拉鏈法來解決。更多內容可以參考?百度百科-哈希表

從以上可以知道,哈希表查找最優情況下是查找一次.而InnoDB使用的是B+樹,最優情況下的查找次數根據層數決定。因此為了提高查詢效率,InnoDB便允許使用自適應哈希來提高性能。

可以通過參數?innodb_adaptive_hash_index 來決定是否開啟。默認是打開的。

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

存儲引擎會自動對個索引頁上的查詢進行監控,如果能夠通過使用自適應哈希索引來提高查詢效率,其便會自動創建自適應哈希索引,不需要開發人員或運維人員進行任何設置操作。

自適應哈希索引是對innodb的緩沖池的B+樹頁進行創建,不是對整張表創建,因此速度很快。

?

可以通過查看innodb的status來查看自適應哈希索引的使用情況。

mysql> show engine innodb status \G *************************** 1. row ***************************Type: InnoDBName: Status: ===================================== 2019-03-07 23:37:23 0x7f1f2d34c700 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 6 seconds ------------------------------------------------------ INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 0, seg size 2, 0 merges merged operations:insert 0, delete mark 0, delete 0 discarded operations:insert 0, delete mark 0, delete 0 Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) 0.00 hash searches/s, 0.00 non-hash searches/s ------------------------------- END OF INNODB MONITOR OUTPUT ============================

可以看到自適應哈希索引大小,每秒的使用情況。

注意從哈希表的特性來看,自適應哈希索引只能用于等值查詢,范圍或者大小是不允許的。

等著查詢: select * from xx where name = "xxx";

=======本博客代碼一般存放在GitHub,使用過程中代碼鏈接路徑可能會發生變化,如無法跳轉,請聯系我進行修改!=============
推薦:《Java常用技術和書籍推薦》

?

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的推薦按鈕。
如果,您希望更容易地發現我的新博客,不妨關注一下。因為,我的寫作熱情也離不開您的肯定支持。
感謝您的閱讀,如果您對我的博客所講述的內容有興趣,請繼續關注我的后續博客。

來源:https://www.cnblogs.com/lgjlife/p/10493496.html

總結

以上是生活随笔為你收集整理的MySQL中的自适应哈希索引的全部內容,希望文章能夠幫你解決所遇到的問題。

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