django 邻接列表树使用递归WITH(Postgres 8.4)代替嵌套集

sxpgvts3  于 2023-04-13  发布在  Go
关注(0)|答案(2)|浏览(210)

我正在寻找一个Django树库,并尽我所能避免嵌套集(他们是一个噩梦维护)。
邻接列表模型的缺点一直是无法在不求助于多个查询的情况下获取后代。Postgres中的WITH子句似乎是这个问题的可靠解决方案。
有没有人看到过关于WITH和嵌套集的性能报告?我假设嵌套集仍然会更快,但只要它们在同一个复杂度类中,我可以吞下2倍的性能差异。
Django-Treebeard让我很感兴趣。有人知道在Postgres下运行时是否实现了WITH子句吗?
这里有没有人根据WITH子句从嵌套集切换过来?

sg2wtvxw

sg2wtvxw1#

这里是另一个比较性能的参考(但没有提到django):http://explainextended.com/2009/09/24/adjacency-list-vs-nested-sets-postgresql/

邻接列表与嵌套集合:PostgreSQL(Quassnoi)鉴于以上所述,并考虑到嵌套集模型更难管理,我们可以得出结论,邻接列表模型应该用于管理PostgreSQL 8.4中的层次数据。

ddrv8njm

ddrv8njm2#

关于这种方法的可能性的一些想法:
https://cra.mr/2010/05/30/scaling-threaded-comments-on-django-at-disqus/
简而言之:大卫Cramer(django-debug-toolbar)非常喜欢递归查询以及它们在Disqus中的表现。

相关问题