下面是对LevelDB、SQLite3 (version 3.7.6.3) 及 Kyoto Cabinet’s (version 1.2.67)这三个版本的数据库。
测试机器配置:six-core Intel(R) Xeon(R) CPU X5650 @ 2.67GHz, with 12288 KB of total L3 cache and 12 GB of DDR3 RAM at 1333 MHz
文件系统:测试脚本分别跑在两台机器上,其文件系统一台为ext3(磁盘为 SATA Hitachi HDS721050CLA362),一台为ext4(配备磁盘 SATA Samsung HD502HJ)
性能测试源码:
基本测试
基本测试的条件如下:每个数据库使用4GB内存
数据库都处于异步写模式(LevelDB’s sync option, TreeDB’s OAUTOSYNC option, SQLite3’s synchronous options 都关闭),也就是说写操作不用等数据真正写到磁盘上才返回。
Key 的长度为16字节
Value 的长度为100字节 (这个长度才能让数据库的压缩算法能够起作用,将数据压缩至50%大小左右)
顺序读写时Key值递增变化
随机读时生成随机的Key值
测试结果:
结果显示,在顺序读写和随机写上,LevelDB 在性能上都遥遥领先,在随机读上面 Ky