1
我试图插入一些数据到MySQL数据库使用python(pymysql连接器),我得到非常差的性能(每秒插入约10行)。该表是InnoDB,我正在使用多值插入语句并确保关闭自动提交。任何想法为什么我的插入仍然如此缓慢?从Python缓慢的MySQL插入
我最初认为autocommit未被正确禁用,但我添加了代码来测试它在每次连接期间被禁用(= 0)。
这里我举的例子代码:
for i in range(1,500):
params.append([i,i,i,i,i,i])
insertDB(params)
def insertDB(params):
query = """INSERT INTO test (o_country_id, i_country_id,c_id,period_id,volume,date_created,date_updated)
VALUES (%s,%s,%s,%s,%s,NOW(),NOW())
ON DUPLICATE KEY UPDATE trade_volume = %s, date_updated = NOW();"""
db.insert_many(query,params)
def insert_many(query,params=None):
cur = _connection.cursor()
try:
_connection.autocommit(False)
cur.executemany(query,params)
_connection.commit()
except pymysql.Error, e:
print ("MySQL error %d: %s" %
(e.args[0], e.args[1]))
cur.close()
还有什么可能是这个问题?上面的例子需要大约110秒的永久执行。
谢谢@panofish。我现在用sqlalchemy(我相信它使用mysqldb)试过上面的代码,并得到相同的结果。 – idubs11 2014-10-14 08:42:04
酷,那么你的服务器或连接必须有错误。 – panofish 2014-10-14 13:21:54
是的,这肯定是由于与我连接到服务器的延迟有关。 – idubs11 2015-03-17 13:47:31