使用pymongo慢速插入MongoDB副本集

时间:2016-06-10 21:14:51

标签: python mongodb amazon-ec2

我正在为大学做一个项目,我必须执行测试以检查插入的时间,并在MongoDB的副本集中查找更改成员(节点)的数量。从1名成员加一名仲裁员到3名成员加上仲裁员。

我已经实例化并正确配置了4个实例t2.micro(使用AWS EC2),并在每个实例上安装并配置了Ubuntu Server OS和MongoDB。我已经从一个节点初始化了副本集。

之后我在python中编写了测试程序,但是我意识到在MongoDB集合中插入1,000个项目需要花费23秒来执行它,这似乎很奇怪,因为我将插入查询转换为具有4个节点的复制集和仲裁者。

这是我编写的用于测试的代码,执行查询需要23秒:

import timeit
from pymongo import MongoClient
from time import sleep

_connection = MongoClient('84.93.90.12', 27017)
_dbMongoDB = _connection.test

start_time = timeit.default_timer() # Inizio a contare il tempo d'esecuzione
for i in range(1000):
    _dbMongoDB.test.insert({"test":1})

elapsed = timeit.default_timer() - start_time
print(elapsed)

是否有特定的驱动程序连接到Python中的MongoDB复制集? 我与副本集的连接有问题吗?

如果我尝试使用以下指令直接从MongoDB shell中的主节点插入1000个数据:

start = new Date();
for(var i = 0; i < 1000; i++){db.timecheck.insert({"_id" : i})};
end = new Date(); print(end - start);

查询的执行时间是8毫秒。

对这种缓慢的想法?有人可以帮帮我吗?

提前致谢!

0 个答案:

没有答案