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"]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章