Mongodb 插入、批量插入和分页查询性能测试
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
- 处理器名称: 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 |
结论:批次插入越多,单位时间越少
作者:baboon
链接:https://www.jianshu.com/p/c1ba8c45e6bf
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341