首页 > 解决方案 > Django 聚合函数是否使用索引?

问题描述

我有一个 django 模型,在数据库(PostgreSQL)中有大量实例(行)。然后我聚合模型的十进制字段并对其进行平均。我的问题是,它会加快为该字段设置和索引的聚合过程吗?

我在做什么的例子:

class Blog(models.Model):
    name = models.CharField(max_length=10)
    lines_per_page = models.DecimalField()

Blog.objects.all().aggregate(x=Avg('lines_per_page'))[x]

然后进行以下更改会改善聚合吗?

class Blog(models.Model):
    name = models.CharField(max_length=10)
    lines_per_page = models.DecimalField(db_index=True)

Blog.objects.all().aggregate(x=Avg('lines_per_page'))[x]    

正如我所说,我的数据库很大,只有我正在使用的模型的表占用约 6GB。

标签: djangopostgresqlperformancedjango-models

解决方案


推荐阅读