MoR*_*oRe 4 python django performance
我还没有在SO上找到这个问题。
在 django 的对象模型中进行外键查找的以下两种变体之间是否存在速度差异?我只需要外键。
class A(models.Model):
x = models.PositiveIntegerField(null=True)
class B(models.Model):
a = models.ForeignKey(A, null=True, on_delete=models.CASCADE)
y = models.PositiveIntegerField(null=True)
b = b.objects.last()
Run Code Online (Sandbox Code Playgroud)
哪个更快或者它们相同?
b.a_id
b.a.id
Run Code Online (Sandbox Code Playgroud)
编辑:实际上我想我可以自己回答这个问题......第二个变体应该更慢,因为它从数据库创建整个对象,对吧?
简单地说:是的,有一定的区别,并且b.a_id比 更快b.a.id。
后者a从数据库中检索整个对象作为附加查询。(您可以通过添加 来保存该查询.select_related('a'),但仍然不需要执行.a.id替代操作。).a_id
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |