gpt4 book ai didi

Python - SQL更新表中所有行的有效方法

转载 作者:行者123 更新时间:2023-11-29 23:31:31 25 4
gpt4 key购买 nike

我正在尝试使用 python 更新包含很多行的 SQL 表。假设该表有三列(id BIGINT、关键文本、内容文本)。我需要根据“键”上的某些函数 myfun 更新所有行的“内容”字段。 Myfun 使用一些 Web API,可能需要一点时间。
所以我所做的是:

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='xxx')
cur = conn.cursor()
conn.select_db("%s" % dbname)
cur.execute("select key from table")
results = cur.fetchall()
for result in results:
txt = myfun(result[0])
cur.execute("update posts set content = %s where key = %s", (txt, result[0]))
conn.commit()
cur.close()
conn.close()

当 table 很小时,这对我有用。我不确定如果表有很多行它是否有效。或者有没有更有效的方法来更新这种情况下的行?

谢谢

最佳答案

如果您使用 innodb,您可以在一个事务中提交所有内容,将外键检查、唯一检查等设置为 false,但是你有没有检查一下瓶颈是mysql更新命令还是myfun函数,如果是myfun,你应该专注于优化它。

您是否正在 myfun 中进行同步调用并等待响应?如何将其异步化为 unirest 之类的东西?

关于Python - SQL更新表中所有行的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26548440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com