好吧,我的巨人 friend 们,我再次在你们的肩膀上寻找一点空间 :P
这就是问题所在,我有一个 python 脚本正在修复一些数据库问题,但它花费的时间太长了,主要的更新语句是这样的:
cursor.execute("UPDATE jiveuser SET username = '%s' WHERE userid = %d" % (newName,userId))
用不同的 newName 和 userid 对调用了大约 9500 次...
关于如何加快这个过程有什么建议吗?也许我可以通过某种方式通过一个查询完成所有更新?
任何帮助将不胜感激!
PS:Postgres 是正在使用的数据库。
最佳答案
将所有数据插入另一个空表(例如称为 userchanges),然后在单个批处理中更新:
UPDATE jiveuser
SET username = userchanges.username
FROM userchanges
WHERE userchanges.userid = jiveuser.userid
AND userchanges.username <> jiveuser.username
请参阅 the COPY command 上的文档用于批量加载您的数据。
还有tips for improving performance when populating a database .
关于python - 数据库查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968451/