根据这个官方基准,它在随机读取时执行 129,000 ops/sec。但据我所知,随机读取至少需要对磁盘进行一次随机访问(缓存对随机读取没有帮助,因为整个数据库比缓存大得多),一个随机访问磁盘需要大约 10ms 的磁盘寻找时间。这应该使随机读取速度低于 100 ops/sec。
我在我的慢速机器上用 100,000,000 个 MD5 字符串做了一个简单的测试。随机写入执行大约 50,000 ops/sec(与官方基准不远),随机读取执行大约 20 ops/sec。
问题是:为什么leveldb的官方benchmark能拿到这么高的成绩?我没有看到对基准代码的特殊优化,并且基准不使用 SSD 磁盘之类的东西。