开发者社区> 问答> 正文

比较区别

select_related('外键字段[__外键字段]') 和 prefetch_related('外键字段[__外键字段]')的区别?

展开
收起
珍宝珠 2019-11-22 12:53:17 1479 0
1 条回答
写回答
取消 提交回答
  • # 相同点:它俩都用于连表查询,缓存查询结果,减少SQL查询次数。
    
    # 不同点:
    select_related 主要针对一对一和一对多关系进行优化。通过多表join关联查询,一次性获得所有数据,缓存在内存中,但如果关联的表太多,会严重影响数据库性能。
    prefetch_related 主要针对多对多关系进行优化。通过分表,先获取各个表的数据,缓存在内存中,然后通过Python处理他们之间的关联。
    
    2019-11-22 12:53:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多