测试环境:
型号名称: iMac
处理器名称: Intel Core 2 Duo
处理器速度: 3.06 GHz
处理器数量: 1
总核心数: 2
L2 高速缓存: 3 MB
内存: 4 GB
总线速度: 1.07 GHz
测试方案:
js脚本向mongo向一个collection里插入一百万个文档
用mongo的ruby driver做CRDU操作
ruby脚本向mysql的表插入100万条记录
用AR做CRDU操作
测试AR的CRDU与mongo ruby driver的CRDU性能
测试结果:
mysql vs mongo
| AR | MONGO
---------------------------------------------------------------------------
Model.create x1000 | 1.235 | 0.337
Resource#update x1000 | 0.765 | 0.079
Resource#destroy x10 | 0.009 | 0.00074
Model.first x1000 | 0.279 | 0.223
Model.find(id) x1000 | 0.240 | 0.304
Model.find not use index x10 | 6.359 | 5.04
Model.find not use index x10 | 18.952 | 10.479 ( mysql:big field, mongo:find sub-doc)
结果分析:
虽然mysql记录与mongo的文档不是完全一致的,但在同一水平上。
1. 基本查找:找first与通过id查找,两者差不多
2. 无索引查找:mongo要比mysql快一点 。最后一行数据是指mysql有大字段,而mongo则对子文档字段作查找。
3. create, update, destroy, mongo基本要比mysql快一个数量级 。
测试脚本见附件