Django 2.1.3 模型层 索引

索引类可轻松创建数据库索引。可以通过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

猜你喜欢

转载自blog.csdn.net/lengfengyuyu/article/details/84941137