mongodb每秒写入量_mongodb批量写与逐条写性能对比

本文通过实验对比了MongoDB批量写入与单条写入的性能,结果显示在大数据量情况下,批量写入能显著提高效率,降低通信时间,提升并发性能,达到每秒7w+的写入速度。
摘要由CSDN通过智能技术生成

大家过年好!!!

终于忙完了年,可以安心写这一篇文章了。

年前有一个爬虫项目,其中一个存储中间件是我用twisted写的,一开始数据量比较少,所以采用的策略是单条写。但是放假前临时加大了数据量,发现中间件处理不过来了!最后将插入和更新操作改成了批量操作解决了这个问题。

一、先列出结论:

mongodb写操作的主要时间是耗费在程序与mongodb的通信过程,而不是实际的写过程。所以在数据量很大的时候需要将程序改成批量写。

二、实验

1、实验过程

使用pymongo编写一个测试脚本,分别测试在批量写和单条写的情况下插入10w条数据用的时间。

2、实验环境

mongodb 3.2.9

python 2.7

pymongo 3.3.0

3、实验代码

代码地址:

#coding:utf-8

from pymongo import MongoClient

from pymongo import InsertOne

import time

def test_insert():

mc = MongoClient("127.0.0.1",maxPoolSize=None)

db = mc['test']

# 逐条写

t0 = time.time()

for i in xrange(0,100000):

db['test_1'].insert_one({'_id':i,'x':1})

p

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值