gpt4 book ai didi

Django,多态和N+1查询问题

转载 作者:行者123 更新时间:2023-12-01 13:01:35 26 4
gpt4 key购买 nike

我正在用 Django 编写一个应用程序,我想在使用外键时使用隐式继承。就我而言,处理这个问题的唯一方法是使用 django_polymorphic 库(Django 中没有单表继承,为什么,为什么??)。

我想了解此解决方案对性能的影响。进行多态查询时执行什么样的连接?与常规查询(臭名昭著的 N+1 查询问题)相比,它是否必须多次访问数据库?文档警告说“现代 RDBM 无法有效处理所执行的查询类型”?然而,它并没有真正说明这些查询是什么。任何统计数据和经验都会非常有帮助。

编辑:

是否有任何方法来检索对象列表,每个对象都是其实际类的一个实例,具有恒定数量的查询?我认为这就是上述库所做的,但现在我感到困惑,我不再那么确定了。

最佳答案

Django-Typed-Models是 Django-Polymorphic 的替代品,它采用简单干净的方法来解决单表继承问题。它使用添加到您的模型的“类型”属性。当您保存它时,该类将保存到“类型”属性中。在查询时,该属性用于设置结果对象的类。

它以查询方式执行您期望的操作(从查询集中返回的每个对象都是向下转换的类),而无需特殊语法或与 Django-Polymorphic 相关的可怕代码量。并且没有额外的数据库查询。

关于Django,多态和N+1查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com