我在Django中具有以下模型:
class Author(models.Model):
name = models.CharField(max_length=120)
country = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=1024)
publisher = models.CharField(max_length=255)
published_date = models.DateField()
author = models.ForeignKey(Author)
“作者”表中有9条记录,“书”表中有4条记录。
计算Book.objects.select_related()。all()时将发出多少个SQL查询?
我的猜测是4,因为Book表中有4行,因此每行查询1条以搜索与每本书相关的所有作者。为什么我的答案是错误的?
可能的选择是5、4、10和1。
答案 0 :(得分:0)
返回一个QuerySet
,它将“遵循”外键关系,并在执行查询时选择其他相关对象数据。这可以提高性能,从而导致单个更复杂的查询,但意味着以后使用外键关系将不需要数据库查询。