Professional Documents
Culture Documents
Structure
Pointer Structure
when
when exists, and
when exists when and exist and do not
does not exist
exist
Points to subtree in Points to subtree in which all search Points to subtree in which all
Here, is
which all search keys keys are greater than or equal to search keys are greater than
empty.
are less than . and are less than . or equal to .
Points to a record with a value equal to Points to the next leaf in the
Here, is empty.
. tree.
Node Bounds
Internal Node
Leaf Node 0 0
[3][4]
A simple B+ tree example linking the keys 1–7 to data values d1-d7.
The linked list (red) allows rapid in-order traversal. This particular
tree's branching factor is =4. Both keys in leaf and internal nodes are
colored gray here.
Algorithms
Search
Insertion
Bulk-loading
Note :
Deletion
B+ tree deletion
Implementation
The leaves (the bottom-most index blocks) of the
B+ tree are often linked to one another in a linked
list; this makes range queries or an (ordered)
iteration through the blocks simpler and more
efficient (though the aforementioned upper bound
can be achieved even without this addition). This
does not substantially increase space
consumption or maintenance on the tree. This
illustrates one of the significant advantages of a
B+tree over a B-tree; in a B-tree, since not all keys
are present in the leaves, such an ordered linked
list cannot be constructed. A B+tree is thus
particularly useful as a database system index,
where the data typically resides on disk, as it
allows the B+tree to actually provide an efficient
structure for housing the data itself (this is
described in[10]: 238 as index structure "Alternative
1").
Applications
Filesystems
Database Systems
iDistance
NVRAM
See also
Binary search tree
B-tree
Divide-and-conquer algorithm
References
1. Navathe, Ramez Elmasri, Shamkant B. (2010).
Fundamentals of database systems (6th ed.).
Upper Saddle River, N.J.: Pearson Education.
pp. 652–660. ISBN 9780136086208.
2. Comer, Douglas (1979). "Ubiquitous B-Tree" (h
ttps://doi.org/10.1145%2F356770.356776) .
ACM Computing Surveys. 11 (2): 121–137.
doi:10.1145/356770.356776 (https://doi.org/
10.1145%2F356770.356776) . S2CID 101673
(https://api.semanticscholar.org/CorpusID:10
1673) .
External links
B+ tree in Python, used to Wikibooks has a b
the topic of: Algor
implement a list (https://pypi.p
Implementation/T
ython.org/pypi/blist) tree
Dr. Monge's B+ Tree index notes (https://web.ar
chive.org/web/20080723122307/http://www.c
ecs.csulb.edu/%7emonge/classes/share/B+Tre
eIndexes.html)
Evaluating the performance of CSB+-trees on
Mutithreaded Architectures (http://blogs.ubc.c
a/lrashid/files/2011/01/CCECE07.pdf)
Effect of node size on the performance of
cache conscious B+-trees (http://www.cs.wisc.
edu/~jignesh/publ/cci.pdf)
Fractal Prefetching B+-trees (https://web.archiv
e.org/web/20070928103850/http://www.pittsb
urgh.intel-research.net/people/gibbons/paper
s/fpbptrees.pdf)
Towards pB+-trees in the field: implementations
Choices and performance (http://leo.saclay.inri
a.fr/events/EXPDB2006/PAPERS/Jonsson.pd
f)
Cache-Conscious Index Structures for Main-
Memory Databases (https://helda.helsinki.fi/bit
stream/handle/10138/21429/cachecon.pdf)
Cache Oblivious B(+)-trees (http://supertech.cs
ail.mit.edu/cacheObliviousBTree.html)
The Power of B-Trees: CouchDB B+ Tree
Implementation (http://guide.couchdb.org/draf
t/btree.html)
B+ Tree Visualization (http://www.cs.usfca.ed
u/~galles/visualization/BPlusTree.html)
B +-trees by Kerttu Pollari-Malmi (https://www.c
s.helsinki.fi/u/mluukkai/tirak2010/B-tree.pdf)
Data Structures B-Trees and B+ Trees (https://c
ourses.cs.washington.edu/courses/cse326/08
sp/lectures/11-b-trees.pdf)
Implementations