002索引

索引是数据库表中对一列或多列的值进行排序的一种结构。默认情况下,Django为模型的主键和外键创建索引。索引可以提高表的查询,更新和删除速度,但会降低表的插入速度。

1、使用字段选项创建索引

与索引有关的字段选项:

db_index:     为True时,为字段创建索引
primary_key:    为True时,字段为模型的主键,为字段创建索引
unique:     为True时,为字段创建唯一索引。
from django.db import models
 
class test1(models.Model):
    field1=models.CharField(max_length=200,db_index=True)   # 为字段创建普通索引
    field2 = models.CharField(max_length=200, unique=True)  # 为字段创建唯一索引

2、在Meta子类中创建索引

模型的Meta子类用于为模型定义描述相关属性的元数据。Meta类indexes选项用于为模型定义索引

class test2(models.Model):
    field1 = models.CharField(max_length=200)
    field2 = models.CharField(max_length=200)
    
    class Meta:
        indexes=[models.Index(fields=['field1'],name='id_field1') ]   # 定义索引

参数fields设置用于创建索引的字段,参数name设置索引名称。如果需要创建基于多个字段的索引,可在参数fields中包含多个字段名称,例如,fields=['field1','field2']

在模型Meta子类中,还可以使用unique_together属性创建组合唯一索引。组合唯一索引要求多个字段的组合值在表中唯一。

class test3(models.Model):
    field1 = models.CharField(max_length=200)
    field2 = models.CharField(max_length=200)
    class Meta:
        unique_together = ('field1','field2')   # 创建组合唯一索引

生成迁移文件

应用迁移文件完成迁移操作

python自动生成.py

posted @   yaowy  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示