• 测试硬件环境 MacPro
  • 处理器名称: Intel Core i7
  • 处理器速度: 2.5 GHz
  • 处理器数目: 1
  • 核总数: 4
  • L2 缓存(每个核): 256 KB
  • L3 缓存: 6 MB
  • 内存: 16 GB
  • 测试软件环境
  • MongoDB v3.2.4
  • 300W存量数据
1.1 单条插入性能测试

插入数据大小30字节

插入条数(单位:万)

耗时(单位:毫秒)

1

999

2

2176

5

5140

10

10198

结论:在当前测试环境下每秒写入速度为1万

1.2 单条读取性能测试

测试语句

db.follower.find({'user_id':1000069, 'follower_id': 1000089}).Limit(1)


读取条数(单位:万)

耗时(单位:毫秒)

1

1227

2

2383

5

6024

10

12196

结论: 每秒读取速度 8000

1.3 分页读取性能测试——采用Skip实现

测试语句

mg.C("follower").Find(condition).Sort("-_id").Skip(10000).Limit(10).All()


按照每页10条计算

功能场景

耗时(单位:毫秒)

读取10000条之后的 10条数据

15

读取50000条之后的 10条数据

70

读取100000条之后的 10条数据

140

结论:
随着查询偏移量的上升(1w, 5w, 10w),查询耗时出现线性增长。尽量避免使用 Skip 做为分页策略

1.4 批量写入性能测试

插入数据大小30字节

一次插入条数

耗时(单位:毫秒)

速度 (单位: 毫秒/条)

5000

80

0.016

2000

32

0.016

1000

18

0.018

100

2.15

0.0215

结论:批次插入越多,单位时间越少