In order to increase speed of searching a record in the database, we usually create indice. Actually, indexing is a kind of data structure.
For finding a specific element in a table, the common way is to search one by one. However, its time complexity is O(n). A wiser way is to use Binary Search Tree whose time complexity is O(log(n)). Sounds great? Here is the thing, index files store in external memory so swithching from one block (node) to another block is time comsuming. The more nodes a tree has, the more time it takes to deal with I/O operation for the disk. Our goal is to reduce the height of the tree(or the number of nodes), so that B-trees and B+ trees are decent choices. It is because multiple keys are able to store in one node, so the height of the tree drop down rapidly.