美文网首页
django rest frame 效率低

django rest frame 效率低

作者: Dream_lover | 来源:发表于2016-12-28 20:20 被阅读0次

django的orm映射,默认的是懒加载,每次只取最少量的数据,当在取querryset的过程中设计到外键的时候,django首先会去取想要的数据集,再去取外键的数据集,这样就访问了两次数据库,那取n条数据就访问了n*n次数据库.
拥有适度流量的网站,在进入真正的麻烦前也就可以负担起50次到数据库的访问。
所以一次嵌都在用你的效率在开玩笑.

  • select_related
    :Django ORM 最简单的预加载工具,对于所有一对一多对一的数据关系,你都需要从同一个父对象获取数据,如客户的公司名称。这个会被翻译成 SQL 的 join 操作,这样父对象的数据就和子对象的数据一起取回来了。(参见官方文档
  • prefetch_related
    :对于更复杂的关系,即每个结果有多行(例如 many=True ),像多对一多对多的数据关系,比如上述客户的订单,这转化一个二级 SQL 查询,通常有很长的 WHERE ... IN
    ,从中只选择相关的行。(参见官方文档
  • Prefetch
    :用于复杂 prefetch_related
    查询,例如过滤子集。它也可以嵌套setup_eager_loading
    进行调用。 (参见官方文档

相关文章

网友评论

      本文标题:django rest frame 效率低

      本文链接:https://www.haomeiwen.com/subject/mjhopttx.html