As of 2009-01-04 I get this output on a 2.2GHz MacBook Pro: module version: (2, 4, 1) sqlite version: (3, 6, 2) read from file dumb 10: 1000 loops, best of 3: 1.04 msec per loop dumb 100: 100 loops, best of 3: 10.4 msec per loop dumb 1000: 10 loops, best of 3: 104 msec per loop gnu 10: 100000 loops, best of 3: 4.41 usec per loop gnu 100: 10000 loops, best of 3: 38.5 usec per loop gnu 1000: 1000 loops, best of 3: 395 usec per loop ndbm 10: 100000 loops, best of 3: 3.64 usec per loop ndbm 100: 10000 loops, best of 3: 31.1 usec per loop ndbm 1000: 1000 loops, best of 3: 320 usec per loop sqlite 10: 1000 loops, best of 3: 258 usec per loop sqlite 100: 100 loops, best of 3: 2.57 msec per loop sqlite 1000: 10 loops, best of 3: 25.4 msec per loop read from :memory: sqlite 10: 1000 loops, best of 3: 233 usec per loop sqlite 100: 100 loops, best of 3: 2.32 msec per loop sqlite 1000: 10 loops, best of 3: 23.2 msec per loop write to file dumb 10: 100 loops, best of 3: 3.89 msec per loop dumb 100: 10 loops, best of 3: 40.9 msec per loop dumb 1000: 10 loops, best of 3: 415 msec per loop gnu 10: 1000 loops, best of 3: 306 usec per loop gnu 100: 100 loops, best of 3: 2.96 msec per loop gnu 1000: 10 loops, best of 3: 30.1 msec per loop ndbm 10: 10000 loops, best of 3: 27 usec per loop ndbm 100: 1000 loops, best of 3: 283 usec per loop ndbm 1000: 100 loops, best of 3: 6.08 msec per loop sqlite 10: 1000 loops, best of 3: 750 usec per loop sqlite 100: 100 loops, best of 3: 8.19 msec per loop sqlite 1000: 10 loops, best of 3: 94.1 msec per loop write to :memory: sqlite 10: 1000 loops, best of 3: 293 usec per loop sqlite 100: 100 loops, best of 3: 3.25 msec per loop sqlite 1000: 10 loops, best of 3: 34.9 msec per loop keys from file dumb 10: 100000 loops, best of 3: 14.6 usec per loop dumb 100: 10000 loops, best of 3: 141 usec per loop dumb 1000: 1000 loops, best of 3: 1.43 msec per loop gnu 10: 10000 loops, best of 3: 35.3 usec per loop gnu 100: 1000 loops, best of 3: 354 usec per loop gnu 1000: 100 loops, best of 3: 3.56 msec per loop ndbm 10: 100000 loops, best of 3: 5.78 usec per loop ndbm 100: 10000 loops, best of 3: 53.1 usec per loop ndbm 1000: 1000 loops, best of 3: 532 usec per loop sqlite 10: 10000 loops, best of 3: 183 usec per loop sqlite 100: 1000 loops, best of 3: 1.79 msec per loop sqlite 1000: 100 loops, best of 3: 18 msec per loop keys from :memory: sqlite 10: 10000 loops, best of 3: 164 usec per loop sqlite 100: 1000 loops, best of 3: 1.64 msec per loop sqlite 1000: 100 loops, best of 3: 16.4 msec per loop iterkeys from file dumb 10: 100000 loops, best of 3: 9.87 usec per loop dumb 100: 10000 loops, best of 3: 93.3 usec per loop dumb 1000: 1000 loops, best of 3: 943 usec per loop sqlite 10: 1000 loops, best of 3: 285 usec per loop sqlite 100: 100 loops, best of 3: 2.91 msec per loop sqlite 1000: 10 loops, best of 3: 29.1 msec per loop iterkeys from :memory: sqlite 10: 1000 loops, best of 3: 265 usec per loop sqlite 100: 100 loops, best of 3: 2.63 msec per loop sqlite 1000: 10 loops, best of 3: 26.5 msec per loop