Django 建立索引

数据库数据规模挺大的,建立索引以加速查询。

通过db_index和Meta index选项给数据表字段建立索引

使用索引可快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,没有索引目录的话,你访问书中某个页面需要从第1页遍历到最后一页,如果有目录,你可以快速地根据目录查找到所需要的页面。Django项目中如果你需要频繁地对数据表中的某些字段(如title)使用filter(), exclude()和order_by()方法进行查询,我们强烈建议你对这些字段建议索引(index), 提升查询效率。

要对模型中的某个字段建立数据库索引,你可以使用db_index选项,也可以使用Meta选项建立索引。使用Meta选项的好处是你可以一次性对多个字段建立索引,还可以对多个字段建立组合索引。

代码如下:

class CountryData(models.Model):
    date = models.DateField()
    country = models.ForeignKey(Country, on_delete=models.CASCADE, default="")
    confirm_add = models.IntegerField(default=0)
    confirm = models.IntegerField(default=0)
    heal = models.IntegerField(default=0)
    dead = models.IntegerField(default=0)

    def __str__(self):
        return str(self.country) + " " + self.date.strftime("%Y/%m/%d")

    class Meta:
        indexes = [models.Index(fields=['country']), ]

同时Meta中还可以定义联合索引:

index_together = ["user", "goods"]

联合约束:(即goods与user不相同)

unique_together = ["goods", "user"]

 

    原文作者:zju_cxl
    原文地址: https://blog.csdn.net/hrbust_cxl/article/details/106821642
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞