Most mutable storage engines use an in-place update mechanism; the most dominant one being B-Trees.
In-memory tree structures like Binary Search Tree (BSTs), 2-3 trees, and AVL trees were not designed in mind for disk (hence the name “in-memory”) [explanation of binary search tree, this, this, this].
Problems in disk-based storage [this]
⮑ Frequent rebalancing and pointer updates.
⮑ Poor locality
Nodes are scattered randomly across disk pages.
A parent and a child can be stored in different disk pages.
⮑ High height
BSTs have fanout = 2, so even balanced trees are tall.
<aside> <img src="/icons/exclamation-mark_yellow.svg" alt="/icons/exclamation-mark_yellow.svg" width="40px" />
↑ Fanout → ↓ Height → Fewer disk seeks → Faster lookups.
</aside>