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

歡迎訪問 生活随笔!

生活随笔

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

数据库

hash 值重复_MySQL调优实战:MySQL B+Tree索引和Hash索引的区别?

發布時間:2025/3/21 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hash 值重复_MySQL调优实战:MySQL B+Tree索引和Hash索引的区别? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“Java分享吧”,選擇“設為星標”

優選有價值的技術文獻,從我做起

MySQL技術篇章

1、B+Tree索引

1、B+Tree首先是有序結構,為了不至于樹的高度太高,影響查找效率,在葉子節點上存儲的不是單個數據,提高了查找效率;

為了更好的支持范圍查詢,B+樹在葉子節點冗余了非葉子節點數據,為了支持翻頁,葉子節點之間通過指針相連;

2、B+樹算法:通過繼承了B樹的特征,通過非葉子節點查詢葉子節點獲取對應的value,所有相鄰的葉子節點包含非葉子節點,使用鏈表進行結合,有一定順序排序,從而范圍查詢效率非常高。

缺點:因為有冗余節點數據,會比較占內存。

2、Hash索引

1、Hash是k,v形式,通過一個散列函數,能夠根據key快速找到value

2、哈希索引就是采用一定的hash算法,把鍵值換成新的哈希值,檢索時不需要類似B+樹那樣從根節點到葉子節點逐級查找,只需要一次hash算法即可立即定位到相應的位置,速度非常快。

缺點:?因為底層數據結構是散列的,無法進行比較大小,不能進行范圍查找

3、B+樹索引和hash索引的明顯區別:

1、如果是等值查詢,那么hash索引有明顯的優勢,因為只需要經過一次算法即可找到相應的鍵值;當然了,這個鍵值是唯一的,如果不唯一,則需要先找到下標位置再鏈式查找。

2、從示意圖可以知道,hash索引無法支持范圍查詢,因為原先是有序的鍵值,但是經過hash算法后,有可能變成不連續的,就沒有辦法利用索引完成范圍查詢檢索數據。

3、同樣,hash索引也沒辦法利用索引完成排序,以及like `xxx%`這樣的模糊查詢(范圍查詢)。

4、hash索引也不支持多列聯合索引的最左前綴匹配規則。

5、B+樹索引的關鍵字檢索效率比較平均,不像B樹那樣波動幅度大,在有大量重復鍵的情況下,hash索引的效率也是極低的,因為存在hash碰撞問題。


歷史技術文獻

?
  • Spring5.0源碼深度解析:SpringBean的Aop通知調用鏈源碼分析

  • Spring5.0源碼深度解析:SpringBean的生命周期,小白都能看懂

  • Spring5.0源碼深度解析:SpringBean循環依賴問題解決方案,小白都能看懂

  • Mybatis源碼分析執行流程總結,看這兒

  • Mybatis核心秘密,他到底用了多少設計模式

  • 阿里小哥淺談Java集合,ArrayList源碼分析 what?

  • Java集合中LinkedList你弄懂沒?微軟面試有問道

  • CPU100%占用過高排查實戰,看完你也會~

文章有幫助可以點個「在看」或「分享」,分享不易,請兄弟姐妹們點下吧!

我是吧主,Java干貨分享,記錄每一位程序員的點點滴滴故事,每篇文章原創與當下程序員,架構師,日常總結經驗,全網唯一良心原創無廣告平臺~

總結

以上是生活随笔為你收集整理的hash 值重复_MySQL调优实战:MySQL B+Tree索引和Hash索引的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

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