From Wikipedia, the free encyclopedia
In computer science, a
(BplusTree) is a type of tree which
represents sorted data in a way
that allows for efficient insertion,
retrieval and removal of records,
each of which is identified by a
. It is a dynamic, multilevel
index, with maximum and
minimum bounds on the number
of keys in each index segment
(usually called a "block" or
"node"). In a B+ tree, in contrast
to a B-tree, all records are stored
at the leaf level of the tree; only
keys are stored in interior nodes.
The primary value of a B+ tree is
in storing data for efficient
retrieval in a block-oriented
storage context. This is primarily because unlike binary search trees, B+ trees have very high fanout
(typically on the order of 100 or more), which reduces the number of I/O operations required to find
an element in the tree.
btrfs, NTFS, ReiserFS, NSS, XFS, and JFS filesystems all use this type of tree for metadata indexing.
Relational database management systems such as IBM DB2
, Microsoft SQL Server
, Sybase ASI
, Firebird and MySQL
support this type of tree for table
indices. Key-value database management systems such as Tokyo Cabinet
and Tokyo Tyrant
support this type of tree for data access.
The order (branching factor) of a B+ tree measures the capacity of nodes (i.e. the number of children
nodes) in the tree. It is defined as a number
is the number of
children in each node. For example, if the order of a B+ tree is 7, each internal node (except for the
root) may have between 4 and 7 children; the root may have between 2 and 7.
A simple B+ tree example linking the keys 1–7 to data values d
Note the linked list (red) allowing rapid in-order traversal.
5 See also
7 External links
B+ tree - Wikipedia, the free encyclopedia