cost 181 ms
B 樹中從右開始的下界

[英]Lower bound from the right in a B-tree

我有一個 B 樹,我想在給定任意參數鍵的情況下,找出小於或等於參數鍵的最大數據鍵。 換句話說,我希望它向左看,以確定它應該在O(log n)中使用什么鍵。 我已經在 C 代碼中修改了lower_bound 的實現。 這使用std::lower_bound中的示例, data = {1, 2, 4, ...

為單個命令獲取多個鎖存器

[英]Acquire multiple latches for a single command

我試圖了解鎖存器在數據庫中的工作原理。 我正在嘗試使用閂鎖抓取/耦合技術構建並發 btree。 鎖耦合保證了單個閂鎖操作(插入、刪除和掃描)的隔離。 但是每個 SQL 命令可能需要獲取多個鎖存器。 在同一命令的兩個閂鎖操作之間,如何保證在第一個命令的兩個 btree 操作之間沒有執行另一個閂鎖操作? ...

B+樹中給定鍵的最大重復數是多少

[英]What are the maximum number of duplicates for a given key in a B+-tree

給定一個 B+ 樹,其分支因子為 g,s 為包含的鍵數,單個鍵允許的最大重復數是多少,我們稱其為 s i ? 我們如何計算這個數字? 我的第一個想法是說每個級別都可以有一個si的實例,所以我的想法是最大化深度,這將是我們的答案,但我不確定這一點。 我在網上搜索過,但似乎以前沒有人問過這個問題,第一次 ...

我應該想象 B 樹向上或向下生長/擴展嗎?

[英]Should I imagine B-Trees to be growing/expanding upwards or downwards?

在學習 B 樹時,我總是看到填充節點的中間數字 go 向上,而不是鍵為 go 的節點的 rest 向下。 所以我只是想知道我是否應該想象這棵樹向上或向下生長。 我希望這棵樹實際上會倒下,但它在視覺上似乎總是向上 go。 ...

B-Tree 節點是否應該包含指向其父節點的指針(C++ 實現)?

[英]Should B-Tree nodes contain a pointer to their parent (C++ implementation)?

我正在嘗試實現 B 樹,據我了解,這就是拆分節點的方式: 嘗試在葉節點 N 插入一個新值 V 如果葉節點沒有空間,則創建一個新節點並選擇中間值 N 並將其右側的所有內容移至新節點,將中間值左側的所有內容留在舊節點中,但將其向左移動以釋放向上索引並在當前兩個節點的右側插入 V 將我們選擇的中間值插入 ...

在節點 Class 中實現 toString 方法的 B 樹出現此錯誤:無法調用 forEach((<no type> c) -> {}) 在數組類型節點上<e> []]</e></no>

[英]B-Tree implementing toString method in Node Class that is giving this error: Cannot invoke forEach((<no type> c) -> {}) on the array type Node<E>[]]

我已經實現了 B-Tree,我已經在節點 class 中給了 toString 到 Implement 方法,但是它在這一行中給出了錯誤children.forEach(c -&gt;builder.append(c.toString(depth + 1))); 我嘗試了各種方法但沒有奏效這是其他 ...

什么時候應該在 B 樹中進行根分裂

[英]when exactly should root split in a B Tree

我最近學習了 B 樹,據我了解,在給定最小度數t的情況下,節點可以具有最小t-1鍵和最大2t-1鍵。 作為 root 的例外甚至可以有 1 個密鑰。 這是 CLRS 第三版圖 18.7(第 498 頁)中的示例,其中t=3 最小鍵數 = 3-1 = 2 最大鍵數 = 2*3-1 = 5 在d)示例中 ...

Postgres B-Tree 順序和高度

[英]Postgres B-Tree order and height

有沒有辦法找到用於 Postgres 中特定索引的 B-Tree 的順序? 還有實際身高? 順序應該是固定的還是取決於索引字段的大小(以適應頁面大小)? 有點含糊,順序有時指節點的最大子節點數,有時指最小數量(對於非根節點)。 但無論哪種方式都很有趣。 ...

獲取有序樹中的下一個值

[英]Get next value in ordered tree

給定一個有序的 map(如 BTreeMap)和 map 中的值,如何在 map 中獲得“下一個”更大(或更小)的值? 有許多有序的樹庫。 得到以下答案將是驚人的: BTreeMap rudy::rudymap::RudyMap ( https://docs.rs/rudy/latest/rudy ...

2022-09-22 20:09:08   1   17    rust / b-tree  
B+Tree 分裂導致葉子節點容量變小

[英]B+Tree splitting leads to leaf nodes with less capacity

我目前正在嘗試了解並重新創建數據庫。 在數據庫中存儲數據的一種常見方法是使用 B+Tree。 數據僅存儲在由“索引節點”索引的所謂“葉節點”上。 如果插入一個完整的葉節點,則將其內容拆分為兩個新節點。 我知道這樣做是為了保持樹平衡且易於搜索。 但我不太明白這個程序。 該示例取自此線程“ 在 b+ 樹 ...

刪除主 b 樹索引

[英]Deletion in primary b-tree index

假設有一個 MVCC 表,其中存儲了具有其歷史版本的記錄。 還有一棵 B+ 樹,其葉子包含以下形式的條目(primary key, pointer to record) 。 如果要刪除一條主鍵為pk的記錄,如果刪除是通過物理刪除B+樹中的對應條目來實現的,那么其他事務就沒有辦法訪問該尚未提交的要刪除 ...

B-Tree 定義正確與否?

[英]B-Tree Definition Correct or not?

我試圖了解 B 樹的順序,但我找到了多個答案。 以下是講師在幻燈片中的內容: 在 n 階 B 樹中: 根節點有 1 到 2n 個鍵,例如 1 到 4 所有其他節點具有 n 到 2n 個元素根節點:可以有 0 或 2 到 2n+1 個子節點,例如 0 或 2 到 5 非根節點:可以有 0 或 n 到 ...

在實現“太大而無法放入內存”數據結構時如何取悅借用檢查器?

[英]How to please the borrow checker when implementing a 'too large to fit in memory' datastructure?

我正在 Rust 中實現一個簡單的 B 樹(作為愛好項目)。 基本實現運行良好。 只要一切都適合 memory,節點可以存儲對其子節點的直接引用,並且很容易遍歷和使用它們。 但是,為了能夠在內存中存儲比 RAM 更多的數據,應該可以將樹節點存儲在磁盤上並僅在需要時檢索樹的某些部分。 但是現在返回對 ...

是否可以模塊化具有不同參數類型的 C 函數?

[英]Is it possible to modularize C functions with different argument types?

我正在構建一個 bTree 來處理 2 種不同的文件類型。 每個節點都有上面指定的結構。 我想在兩者上使用相同的函數searchID() (而不是創建searchID2()例如)。 嘗試使用void *實現,但它根本不起作用。 ...

Oracle索引默認使用b-tree還是b+tree?

[英]Oracle index use b-tree or b+tree by default?

我正在研究 Oracle 內部結構,我想知道文檔中所述的“B-tree 索引”實際上是經典 B-tree 還是 B+tree? 我認為是 B+樹,因為所有數據節點都存儲在葉節點上。 此外,文檔日“B-tree”所以我不確定。 ...

如何有效地將任意 function 應用於 BTreeMap 中移動的 window

[英]How to efficiently apply an arbitrary function on a moving window in a BTreeMap

如何有效地將 function 應用於 BTreeMap 的移動BTreeMap ,其中 window 由鍵的范圍確定? 我當前的代碼是這樣的,但是當BTreeMap變得非常大(並且可能隨着radius增加)時,它會非常慢。 我懷疑這是因為clone()但我想不出替代解決方案。 我如何有效地做到這 ...

B樹中元素計數的大O是多少

[英]What is the big O of counting elements in a B tree

例如,如果我有一棵樹,其中的節點具有結構: 如果我想計算所有具有注釋類型的節點的計數,那么對於 B 樹來說,大 O 的計數是多少? ...

Postgresql:當 where 子句中缺少索引子集時,多列索引的最佳使用

[英]Postgresql: optimal use of multicolumn-index when subset of index is missing from the where clause

我將使用類似於以下的 where 子句對我的數據庫進行查詢: 很少這樣做: 我已按該順序在 a、b 和 t 上創建了一個多列索引。 但是,我不確定它是否最適合我的第二次不太頻繁的查詢。 該索引會在 b 上進行索引掃描還是跳過它並立即移動到 t 索引? (老實說,我不確定索引掃描是如何工作的)。 我 ...

索引是否與 Oracle 中的“WITH”一起使用

[英]Does indexing works with "WITH" in Oracle

我有類似的查詢 我知道 With 子句將以這種方式工作第 1 步:第一步執行 with 子句中的 SQL 查詢。 第二步:將SQL查詢的output存入with子句的臨時關系中。 第 3 步:使用上一階段生成的臨時關系執行 Main 查詢。 現在我想問一下,在實際的STRING_TABLE上創建的索 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM