【发布时间】:2015-04-06 09:15:09
【问题描述】:
假设我有以下内容:
class Model1(Model):
field1 = ForeignKey(Model2)
query_field = IntegerField()
class Model2(Model):
field2 = ForeignKey(Model3)
class Model3(Model)
field3 = SomeDesiredValue
现在我想查询Model1 表并从Model3 中提取field3。我的问题是关于select_related 的性能。
如果我这样做
query = Model1.objects.filter(query_field=filter_paramter).select_related('field1')
我假设以下内容仍会访问数据库?
query[0].field1.field2.field3
我可以执行以下操作以使其更快吗?
query = Model1.objects.filter(query_field=filter_paramter).select_related('field1__field2')
【问题讨论】:
-
FWIW,您可以通过说
print query.query(使用示例中的变量)来查看实际执行的 SQL 查询——here 是一个相关问题。
标签: python django django-select-related