In a b-tree you can store both keys and data in the internal and leaf nodes, but in a b+ tree you have to store the data in the
Define "much faster". Asymptotically they're about the same. The differences lie in how they make use of secondary storage. The Wikipedia articles on B-trees and B+trees look pretty trustworthy.