Django 2.1.3 模型层 索引

33 篇文章 2 订阅
13 篇文章 1 订阅

索引类可轻松创建数据库索引。可以通过Meta.indexes选项添加它们 。本文档解释了索引的API引用和index 选项。

引用内置索引
索引是在 django.db.models.indexes 中定义的,但为方便起见,它们被导入到 django.db.models。标准约定是使用from django.db import models 和引用索引models.<IndexClass>。

Index 选项

class Index(fields=(), name=None, db_tablespace=None)
在数据库中创建 B树 索引。

fields

Index.fields

要建立索引的字段名称的列表或元组。

默认情况下,为每列创建一个升序的索引。要为列定义具有降序的索引,请在字段名称前添加 连字符-

例如Index(fields=['headline', '-pub_date'])将创建SQL类似(headline, pub_date DESC) 。不支持在MySQL上的索引排序。在这种情况下,将降序索引创建为普通索引。

在Django 2.1中更改
旧版本不接受元组。

name

Index.name

索引的名称。如果没有提供name,Django将自动生成一个名称。为了与不同数据库兼容,索引名称不能超过30个字符,并且不应以数字(0-9)或下划线(_)开头。

db_tablespace

Index.db_tablespace
Django 2.0中的新功能
用于此索引的数据库表空间的名称。对于单字段索引,如果未提供db_tablespace,则在字段中的db_tablespace中创建索引。

如果Field.db_tablespace未指定(或者索引使用多个字段),则db_tablespace在模型内的class Meta选项中指定的表空间中创建索引 。如果这两个表空间都未设置,则索引将在与表相同的表空间中创建。

参见
有关PostgreSQL特定索引的列表,请参阅 django.contrib.postgres.indexes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值