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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了