python – 优化Django:嵌套查询与关系查找
|
我有一个使用嵌套ORM查询的遗留代码,它使用JOIN生成SQL SELECT查询,以及包含SELECT和JOIN的条件.执行此查询需要花费大量时间.顺便说一句,当我在原始SQL中执行此查询时,取自Django_ORM_query.query,它在合理的时间内执行. 在这种情况下,优化的最佳做法是什么? 您通常使用select_related()或prefetch_related()解决以下关系的问题. 一个页面通常最多应该有20-30个查询,这将严重影响性能.大多数页面应该只有5-10个查询.您希望减少查询数量,因为往返是数据库性能的头号杀手.通常,一个大查询比100个小查询快. 数据库性能的第二大杀手是一个非常罕见的问题,尽管它有时会因为减少查询数量的技术而出现.您的查询可能只是太大,如果是这种情况,您应该使用defer()或only(),这样您就不会加载您知道不会使用的大字段. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
