【问题标题】:Django SQL query countDjango SQL 查询计数
【发布时间】:2019-09-11 05:55:46
【问题描述】:

我在 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)

Author 表有 9 条记录,Book 表有 4 条记录。

在评估 Book.objects.select_related().all() 时会发出多少 SQL 查询?

我的猜测是 4,因为 Book 表中有 4 行,所以每个查询 1 以搜索与每本书相关的所有作者。为什么我的回答是错误的?

可能的选择是 5、4、10 和 1。

【问题讨论】:

    标签: sql django django-models


    【解决方案1】:

    select_related(*fields)

    返回一个QuerySet,它将“遵循”外键关系,在执行查询时选择其他相关对象数据。这是一个性能提升器,它会产生单个更复杂的查询,但意味着以后使用外键关系将不需要数据库查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多