B-trees are multiway search trees used to store large datasets on disk. They reduce the height of the tree compared to binary trees, lowering the number of disk accesses needed for operations like search. A B-tree of order m has internal nodes with up to m children, keeps the leaves at the same level, and remains balanced during insertions and deletions which may involve splitting and merging nodes as well as promoting keys. B-trees are efficient for disk-based data structures due to their ability to group adjacent records into each node transfer.