python - 查询 ManyToManyField 速度的更好方法是什么?整个对象还是只有 id?
问题描述
我正在尝试确定查询ManyToManyField
速度的最有效方法。
我有 2 个我知道的选项:
- 将整个对象添加到字段
- 仅将 id 添加到字段中
如果我添加对象,显然使用on_delete=models.CASCADE
,我会获得巨大的好处,但我担心添加它可能会降低查询速度,因为它会获取整个对象,其中很多都是这样。
而只有 id,它只是一个 int,所以我认为它不那么重,而且速度更快。
只为了速度,你有什么建议?
解决方案
Django 提供prefetch_relatedManyToMany
以使您对字段或反向字段的查询更快ForeignKey
。
和select_related用于普通ForeignKey
字段。
推荐阅读
- c++ - 找不到问题 - [错误] ld 返回 1 个退出状态
- r - 在过滤器中使用 tidyeval 引用另一列
- java - 输入不保存在文本文件中
- algorithm - Brent-Pollard 分解:Brent 的循环查找算法中正确的龟兔指数是什么?
- c# - 如何从外部 API 读取 jwt 令牌以验证用户并将用户名和电子邮件 ID 插入数据库
- emacs - yasnippets 不起作用:yas--table-get-create: Symbol 的函数定义为 void:record
- delphi - 如何使用 TShellExecuteInfo 发送命令行开关和参数字符串
- kotlin - 如何获取在片段的自定义对话框中输入的信息?
- javascript - 无法使用带有 socket.io 的媒体源从媒体记录器跳转到流
- python - 制作有效的递归幂函数