Difference between B-Tree and B+-Tree
The main difference between B+-Tree and B-Tree is that, for B+-Tree, all pointers to actually records must be in the leaf nodes. The non-leaf nodes, though might contain the desired search key value, still only point to lower level nodes until the leaf node is reach. In B-Tree, each search key value appears only once in the tree, as for B+-Tree case, it can appear many times along its path to the leaf-node. Hence, B+-Tree tends to consume more disk-space, but offer more stable search complexity. B+-Tree operations insertion and deletion are also less complicated as it only handle one generic case - operating from leaf node, unlike B-Tree whose such operations need to handle cases where the search key values lie on non-leaf nodes.