FYI I experimented a little bit with the perf test and instead of using consecutive 32bit ints as keys then I used randomized 64bit ints as keys. I had to reduce the number of keys to 60 million otherwise it ran out of map space :-( Anyway, the resulting LMDB data file ended up as 1.9GB which makes an average of 34 bytes per key,value pair. Even bigger than before. I guess B+trees are only inherently more efficient than hash tables when a significant number of keys are very similar?