【发布时间】:2015-09-19 06:44:36
【问题描述】:
在一个 Django Web 应用程序中,我定义了一个名为 Server 的模型
class Server(models.model):
以及一堆使用这个模型作为外键的模型
class ServerInfo(models.Model):
server = models.ForeignKey(server, null=True)
class ServerDNSRecord(models.Model):
server = models.ForeignKey(server, null=True)
...etc
现在我有一个 API 调用,它返回一个服务器及其所有附加信息。目前,我只是为每个服务器执行一个 for 循环,并使用服务器名称搜索每个信息表。问题是有时我需要进行一个返回所有服务器及其信息的 API 调用。
这会为数据库创建大量的 SQL 查询,并且此调用的响应时间通常大于 5 秒,这是不可接受的。
是否有任何简单的方法来进行某种联接或外键搜索以减少数据库调用量以加快处理速度?
【问题讨论】:
-
select_related可能是你想要的:docs.djangoproject.com/en/1.8/ref/models/querysets/…
标签: python sql django postgresql