我正在使用 MongoDb 和 MySQL 的 python 连接器 pymongo 和 pymysql 测试 MongoDb 和 MySQL,特别是插入功能。 pymongo版本是3.4,pymysql是0.7.9,python是3.5
我的代码看起来像 mongo :
client = MongoClient('localhost', 27017)
db = client['local']
collection = db['cqt']
for i in range (0,10):
datas = [ {'a' : 1, 'b':2" }, {'a' : 3, 'b':4" }, ...] # 2000 dicts
data = [ bson.son.SON( d ) for d in datas]
deltaT = time.clock()
collection.insert_many( data )
deltaT = time.clock() - deltaT
对于 mysql :
connection = pymysql.connect(host='127.0.0.1',
user='admin',
password='toto',
db='cqt',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
sqlRequest = """INSERT INTO `cqt`.`myTable` (`a`,`b`) VALUES """
for data in datas : sql += data.getSQL() + "," # 2000 rows
deltaT = time.clock()
cursor.execute( sql )
deltaT = time.clock() - deltaT
数据是简单的字典,有 6 列,包含一个字符串键和一个 int 值。
当绘制 deltaT 变量(插入 2000 个条目所需的时间)时,我惊讶地发现 mongo 比 mysql 慢得多,慢了 10 倍。 insert duration results
我不想在这里进行基准测试,只是为了估计我需要的用例中的数据库性能。然而,从用 java 进行的其他测试或查看 MySQL 和 MongoDB 之间的网络基准测试来看,我使用 python 的结果根本不是我所期望的。 MySQL 和 Mongo 的插入性能应该非常相似,Mongo 的性能甚至更好。
那么,pymongo 连接器速度慢吗?你知道我的代码或 MongoDB 中是否应该修改一些参数来提高性能吗?有什么建议可以让 MongoDB 获得更好的性能吗?
Tôi là một lập trình viên xuất sắc, rất giỏi!