Python中MySQL插入速度慢

1 投票
1 回答
1294 浏览
提问于 2025-04-26 18:36

我正在尝试使用Python(pymysql连接器)将一些数据插入到MySQL数据库中,但性能非常差,每秒只能插入大约10行数据。这个表是InnoDB类型的,我使用的是多值插入语句,并且确保已经关闭了自动提交功能。你们觉得为什么我的插入速度还是这么慢呢?

我最开始以为自动提交没有正确关闭,但我已经添加了代码来测试每次连接时它确实是关闭的(=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秒,真是太慢了。

暂无标签

1 个回答

0

我不太确定哪里出问题了,但我建议你试试mysqldb或者mysql连接器这两个模块,看看它们的表现是否和现在的一样。

撰写回答