B-trees are a type of self balancing search tree where each node can hold multiple keys and all leaf nodes are the same distance from the root.
B-trees are an extension of self-balancing binary search trees to allow each node to hold multiple keys and have multiple children. They are designed to take advantage of systems that can read and write in large blocks, and are commonly used in databases and file systems.