首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django select_related和prefetch_related的用法与区别

今天我们再来学习两个非常重要的查询方法select_related和prefetch_related方法,看看如何使用它们避免不必要的数据库查询。高手过招,只差分毫。...我们先分析下这会什么会发生,然后再解释如何使用select_related和prefetch_related方法解决这个问题。 为什么会有重复查询?...Django考虑到了这一点,所以提供select_related和prefetch_related方法来提升数据库查询效率,类似于SQL的JOIN方法。...(‘category’).select_related(‘author__name’).get(id=13) # 使用select_related()可返回所有相关主键信息。...Django提供了prefect_related方法来解决这个问题。prefect_related可用于多对多关系字段,也可用于反向外键关系(related_name)。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    函数周期表丨筛选丨值&表丨RELATED系列

    [1240] RELATED函数 RELATEDTABLE函数 这两个函数属于“筛选”类函数,通常情况下适用于跨表计算。 用途:根据模型关系,匹配对应数值。...RELATED会根据模型关系将维度表的数据匹配到事实表,也就是多端找一端对应值; RELATEDTABLE是RELATED的表函数模式,通常是将事实表的数据匹配到维度表,即一端寻找多端的对应值。...返回结果 RELATED返回结果为当前行所对应的匹配值; RELATEDTABLE返回结果为整张表。...例子1: RELATED例子1 = RELATED ( '维度'[组别] ) 结果: [1240] 为每一组数据,添加维度表中所对应的组别信息。...严格意义来说,RELATED系列函数本质也是迭代行上下文进行取值,只不过是顺着模型关系进行迭代,匹配取值。 小伙伴们❤GET了么?

    57400

    如何在Django中使用单行查询来获取关联模型的数据

    这通常涉及使用查询集的 select_related 或 prefetch_related 方法,这两个方法允许你在一次数据库查询中获取关联模型的数据,而不是分开的多个查询。...2、解决方案Django 提供了多种方法来进行单行查询,其中最常见的方法是使用 select_related() 和 prefetch_related()。...2.1 使用 select_related()select_related() 可以将关联模型的数据直接加载到主模型中,这样就可以在一次数据库查询中获取到所有需要的数据。...2.2 使用 prefetch_related()prefetch_related() 可以将关联模型的数据预加载到内存中,这样就可以在后续的查询中直接使用预加载的数据,而不需要再进行数据库查询。...# 使用 prefetch_related()a_list = A.objects.prefetch_related('pptls').filter(pptls__some_unique_value =

    71910

    IRIS Chronicles 定义 Item Response Type 字段属性

    Related这个就有点绕了。Related 首先和 Multiple 类似,是可以有多条记录。但这里需要注意的是,数据的组成是通过 2 个或者多个 Item 打包在一起的。...如果我们有一个数据 需要同时返回这个 Group 中的这 2 个,同时这个 Group 中的数据又是一一对应的,我们就可以说这个返回的数据是 Related。...Related‐multi相对 Related 更进一步。Related 是一行对应的一行的数据,Related‐multi 在 Related 的基础上每一行对应多行的数据。...如果 210 对应过敏的反应只有一种的话,那么 200 和 210 都是 Related。但实际上对过敏的反应可能有多钟,比如说对于 Thyme(百里香)的过敏反应有昏睡和发烧。...那么实际上我们就把 200 和 210 拆分开了,200 还是 Related,我们把 210 细化成了 Related‐multi。

    12010
    领券