b-tree

    1熱度

    1回答

    我想弄清楚如何使用鎖來插入一個項目到B +樹,並不真正理解它背後的理論。 因此,對於搜索,我的觀點是我在根節點上放了一個鎖,然後決定我應該去哪個子節點並鎖定它,此時我可以釋放父節點並繼續此操作,直到我到達葉節點。 但插入是一個複雜得多,因爲我不能讓任何其他線程與插入干擾。我的想法是鎖定沿着葉節點的路徑上的每個節點,但是放置這麼多的鎖定是相當昂貴的,那麼我遇到的問題是葉節點分裂時會發生什麼,因爲它太

    0熱度

    1回答

    我試圖做這個問題,但卡在鍵100有2個傳出指針的步驟。通過我在課堂學到的知識,對於這個給定的問題,至少有3個傳出指針和1個葉子節點。我卡住了,請幫助我。 上有柱的頂部的圖像時,這個問題是在那裏

    0熱度

    1回答

    我是數據結構的新手。我知道我們使用B樹來最小化磁盤旋轉,但是爲什麼我們在B樹上使用黑紅樹來存儲內存?是不是都在O(log n)?在我的眼中,B型樹的高度較小,需要的空間較小(可以有t-1到2t-1個按鍵),而紅黑樹必須有2個子節點用於內部節點。

    0熱度

    1回答

    查詢: SELECT A from table_name where A = 'a'; explain輸出 1 SIMPLE table_name ref A_idx A_idx 1 const 40582635 **Using where; Using index** 問題 我有一個綜合指數A_idx on (A,B,C)... 我一個由於該索引涵蓋了完整的查詢,因此期望輸出僅使用索引的

    -1熱度

    1回答

    typedef struct T{ //Main struct of the nodes char *value; //String view like a pointer struct T *T_l, *T_r; //Pointers left and right }*tree, dim; tree merget

    0熱度

    1回答

    A - Z中的搜索關鍵值。建議使用哪種類型的序列?

    1熱度

    1回答

    在我的數據庫類中,我的教授正在描述從B +樹中刪除鍵。如果你看到下面的圖片: 我除了他告知leaf level節點只能包含3鍵至多一個完全明白了一切。根據我的理解,根據B+ tree的深度,在葉級確定總密鑰從d到2*d,其中d是樹的深度。由於葉爲d爲2,爲什麼葉級別節點不能有4個密鑰。我哪裏出錯了? 包含在根級別的密鑰總數在這裏也很重要?任何人都可以請解釋

    1熱度

    2回答

    我在B +樹的基礎上觀看這個video,他提到B +樹的葉子存儲在磁盤上,除了存儲在main memory中的root。我的班級教授提到索引存儲在main memory中,而leaves包含指向磁盤的數據指針。 見下圖: 我的問題是完全相同的所有索引存儲在何處? 我們只在主存中存儲根嗎? 所有索引都存儲在主內存中? 我已經經歷了幾個沒有人明確提到這部分的鏈接?任何人都可以澄清我的問題。謝謝

    1熱度

    1回答

    目前我在閱讀關於B+ Tree的基礎知識,並且對聚集和非聚集索引的空間分配感到困惑。 當我們在B+ tree上創建聚簇索引時,索引存儲在主存儲器中,樹葉包含指向實際塊的數據指針。塊存儲在磁盤中,塊包含記錄。 通常聚集索引上創建主鍵 只能有一個聚集索引 現在假設我們有一個表(ID,姓名,班級),我創建了兩個非集羣索引name和class。 我的疑問是非聚集索引將被存儲在哪裏? 由於ID字段是主密鑰,

    -3熱度

    1回答

    我正在寫一個B樹的symulator。 我在這裏讀到stackoverflow最好的方法是使用一個隊列來進行水平順序遍歷。但我不知道如何去做。 我從geeksforgeeks開始在C++中實現。 也許有人知道如何重建遍歷(代碼如下)到級別遍歷。 類和constuctors: class BTreeNode { int *keys; // An array of keys in