我正在为大学做一个项目,我必须执行测试以检查插入的时间,并在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毫秒。
对这种缓慢的想法?有人可以帮帮我吗?
提前致谢!