【发布时间】:2015-09-30 00:54:04
【问题描述】:
我有一个 Django 应用程序。
这个 Django 应用程序对 Twitter 进行 api 调用并获取我最近的 100 条推文。我需要将推文插入数据库。
我有一种方法可以对所有 100 条推文采取行动。这个方法有一个 for 循环,我从每个 Tweet 中创建一个模型实例,并分别在每个实例上调用 instance.save()。
我发现事情变慢了,并认为事务可能会使事情变得更快。
所以在方法之外我添加了@method_decorator(transaction.atomic)。我仍然有一个 for 循环,在其中创建模型实例并执行 instance.save() 但现在该方法用 transaction.atomic 装饰。
- transaction.atomic 是否应该让我更快地插入数据库?
- 每个 instance.save() 调用是否仍会发出数据库调用?
- 如果它能让事情变得更快,那又如何?
【问题讨论】:
标签: django database transactions