我正在尝试优化我的应用程序,基本上现在它正在做的是过滤/格式化/计算JSON文件并将数据插入到我的数据库中。因此,我设法使用bulk_create
来优化创建部分。但是在大多数情况下,我必须更新而不是创建,而且我找不到关于同时更新许多条目而不是一个接一个地更新的方法的任何信息。
我尝试使用transaction.atomic
,但不确定是否正确使用它。
with transaction.atomic():
# Iterate trough all auctions from Json API
for a in auctionData.get('auctions') :
# Check if item is in Item table
if a.get('item') in itemsIdx :
# Format data for database
d = {k: v for k, v in a.items() if k in auctionFields}
d['lastModified'] = apiLastModified
auc = d.pop('auc', None)
# if auction already in database update otherwhise create
if auc in latestAuctionsIdx:
currentEntry = Auction.objects.filter(auc=auc).update(**d)
else :
currentEntry = Auction(auc=auc, **d)
currentEntry.save()
我仍然觉得它花费了太多时间,大约需要15秒才能进行3000次更新。 如果您知道什么可以加快速度,请告诉我。 干杯