具有大量注释性能的 Django 查询集

Django queryset with LOTS of annotations performance

查询集上的注释数量是否有限制?如果我向查询集添加大量(超过 50 个)注释,是否会对性能产生重大影响?

注释完全没有限制。但是为了性能你应该明白注释它不再是数据库端的计算,当然每次计算都会让你的查询变慢。

嗯,这要看情况。正如 @Bear Brown 提到的注释只是数据库级别的计算,每次计算都会使您的查询变慢,因此它通常会影响性能,但这并不一定意味着您的查询会很慢有 50 多个注释。

一方面,如果你有巨大的大数据集,那么有时甚至很少的注释(数据库级别的计算)也会导致缓慢,而另一方面,对于小数据集,你可以放置很多注释和你不会注意到任何缓慢。您基本上需要考虑您的数据集将拥有的大约最大记录数,并在可能的情况下尝试对其进行测试。