小编GCr*_*Cru的帖子

在一个字段上过滤并在另一字段上排序时 Django 模型的最佳索引

我使用链接到 PostgreSQL 的 Django 2.2,并希望优化我的数据库查询。给出以下简化模型:

class Person(model.Models):
    name = models.CharField()
    age = models.Integerfield()
Run Code Online (Sandbox Code Playgroud)

我必须对其进行以下查询,例如

Person.objects.filter(age__gt=20, age__lt=30).order_by('name')
Run Code Online (Sandbox Code Playgroud)

在模型元字段中定义索引以优化查询的最佳方法是什么?这四个选项中哪一个最好?

    class Meta
        indexes = [models.Index(fields=['age','name']),
                   models.Index(fields=['name','age']),
                   models.Index(fields=['name']),
                   models.Index(fields=['age'])]
Run Code Online (Sandbox Code Playgroud)

例如,是否可以在查询完成时阻止排序?谢谢。

django indexing sql-order-by django-queryset

4
推荐指数
1
解决办法
5733
查看次数

标签 统计

django ×1

django-queryset ×1

indexing ×1

sql-order-by ×1