模型中的排序是否可以提高查询集的性能?

时间:2019-05-25 00:30:36

标签: django django-models django-views django-queryset django-orm

对不起,我...在数据库和Django方面不是最好的概念。无论如何,我敢肯定,订购与上述做法相反。但只需检查一下:在Meta类中,排序仅在Django查询通过视图返回时对查询集进行排序时才有用,对吗? 例: models.py

class Test(models.Model): 
    id = models.BigAutoField(primary_key=True)
    secondAttr = models.OneToOneField(Wall, on_delete=models.CASCADE) 
    # There are 10 more columns for other stuff

    class Meta: 
        ordering = [‘-secondAttr’, ‘id’]

SecondAttr是另一个表中的BigAutoField的pk,ofc; secondAttr可能一直上升到193,017,273。我打算将id用作代理pk。该查询正在寻找secondAttr为80的任何对象;假设有100个对象的secondAttr =80。如果我删除元数据中的顺序is(,对吗?),则这些对象会散布在整个表Test(例如,第1行,第101,927,018行,第930,029,019行等)中。那么,订购将有助于查询性能吗?还是订购与查询性能无关?对我应该做什么的建议?还是我根本不用担心? 不幸的是,索引在这种情况下并没有真正帮助,现在呢?

0 个答案:

没有答案