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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bucket、Hash Chain List

發布時間:2023/12/14 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bucket、Hash Chain List 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這周在看譚老師關于latch的視頻,其中涉及到 BucketHash Chain ListX$bh這幾個概念,上網搜索了一些資料,綜合看了之后對latch的問題理解增加了不少,現在整理分享如下:

一、 Bucket

1、直接從英文單詞的意思理解:

bucket [簡明英漢詞典]
[5bQkit]
n.桶, 一桶的量, [桶狀物]鏟斗


桶,如同巧克力店里,不同的桶里裝的是不同大小/類型/品牌的巧克力.

2、在oracle當中,bucekt這個“桶”當中存放的是內存塊(chunk)。

為什么會出現“桶”?

隨著物理內存空間增大,如果都使用整體遍歷的方式,要在這么大的空間里查找到合適的內存塊,需要消耗很多時間;為了加快查找的速度,Oracle采用了hash 桶的方式:具體來說就是根據file#和block#套進hash函數,獲得對應的bucket#(這個bucket就是hash bucket)。然后,在每個bucket下面,以雙向鏈表的方式,掛了多個同規格的內存塊,進程在這個雙向鏈表(這個雙向鏈表就是Hash Chain List)里,才按照遍歷的方式查找滿足要求的內存塊,由于查找范圍大大地縮小,所以查找速度也大大地提升。

不同的“桶”是根據什么來區分的呢?

答案是:內存塊的大小。下面來看一段大牛關于bucket的解說:

1). Bucket可以為空
Bucket0 * *
Bucket1
Bucket2 * * *

如果Bucke1是空的,自然要轉向下一個 '非空' 的Bucket"

2).每個bucket存放固定大小的chunk
比如
bucket0 0~20
bucket1 20~40
bucket2 40~80

你現在要一塊30的,如果bucket1為空,只好在bucket2里找一個,比如找到一塊45的,用掉30,剩下的15進入bucket0.


總結

以上是生活随笔為你收集整理的Bucket、Hash Chain List的全部內容,希望文章能夠幫你解決所遇到的問題。

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