原子事务可以减少在循环中花费的时间:
from django.db import transactionwith transaction.atomic(): for i, row in df.iterrows(): mv = Measurevalue.objects.get(org=row.org, month=month) if (row.percentile is None) or np.isnan(row.percentile): # if it's already None, why set it to None? row.percentile = None mv.percentile = row.percentile mv.save()
Django的默认行为是在自动提交模式下运行。除非事务处于活动状态,否则每个查询都会立即提交到数据库。
通过使用
with transaction.atomic()
所有插入,将它们分组为一个事务。提交事务所需的时间在所有随附的插入语句中摊销,因此每个插入语句的时间大大减少。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)