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