gpt4 book ai didi

python - 如何优化这个 MySQL 计数算法?

转载 作者:行者123 更新时间:2023-11-29 04:09:30 27 4
gpt4 key购买 nike

我有 2 个表;一个是用户,另一个记录用户操作。我想计算每个用户的操作次数并将其记录在用户表中。大约有 10 万用户,下面的代码需要 6 个小时!一定有更好的方法!

def calculate_invites():

sql_db.execute("SELECT id, uid FROM users")

for row in sql_db:
id = row['id']
uid = row['uid']

sql1 = "SELECT COUNT(1) FROM actions WHERE uid = %s"
sql_db.execute(sql1, uid)
count_actions = sql_db.fetchone()["COUNT(1)"]

sql = "UPDATE users SET count_actions=%s WHERE uid=%s"
sql_db.execute(sql, (count_actions, uid))

最佳答案

您可以将这一切作为一条语句来完成:

update users
set count_actons = (select count(*) from actions a where a.uid = users.uid)

没有 for 循环。没有多个查询。在 SQL 中执行您在 SQL 中可以执行的操作。通常,遍历行是您希望在数据库中而不是在应用程序中执行的操作。

关于python - 如何优化这个 MySQL 计数算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627953/

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