sql - Django SQL 查询计数
问题描述
我在 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。
解决方案
返回QuerySet
将“遵循”外键关系的 a,在执行查询时选择其他相关对象数据。这是一个性能提升器,它会导致单个更复杂的查询,但意味着以后使用外键关系将不需要数据库查询。
推荐阅读
- javascript - Photoshop - 打开随机图像
- javascript - YouTube API Fetch 发送响应,但我无法访问项目
- javascript - 如何使对象在不同标签的右下角浮动
- python - 从 Windows 命令行启动 Python 脚本:脚本启动,然后失败
- javascript - 重定向到感谢页面在我的 PHP 代码中不起作用,使用模板
- optimization - 布尔代数在实践中的效率如何?
- c++ - ListNode 的删除指针给出错误
- mysql - 提高 GCP SQL 故障转移的速度
- dialogflow-es - 填充对话框流代码无法与实时数据库连接
- mips - 在 MIPS 中,命令行参数究竟是如何存储在 $a1 中的?