The actual difference

B-TreeB+Tree
Where values livein any node, inner nodes included 24:36 25:01only in leaf nodes; inner nodes are pure guide posts 25:01
Key duplicationeach key appears exactly once → more space efficient 25:01a key can appear in both a leaf and an inner node
On deletekey disappears from the tree entirelyremoved from the leaf, but can be left behind in the inner node 25:31
Range/sequential scanmust bounce up and down between levels 26:03descend once, then rip across the leaf linked list 26:03
Point query luckmay find the value at the root and stop early 27:30always pays the full descent

Why B+Tree wins

  • Sequential access is the game changer. A scan descends once and then never goes back up 26:03 27:58.
  • Leaving stale keys in inner nodes is free correctness: a deleted key still works as a separator, so why pay to clean it up 25:31 41:38.
  • Updates are simpler than a red-black tree, which needs rotations 27:30.

Arguments raised and rejected in class

  • "Deletes wouldn't need whole-tree restructuring" — false; B+Trees still restructure on delete 25:45.
  • "You could keep the non-leaf nodes in memory" — you get that for free from the buffer pool's replacement policy in a B-Tree too, so it is not a differentiator 26:37.