Spec-Zone.ru › Django 2.0

Справочник по индексам моделей

Новое в Django 1.11.

Классы индексов упрощают создание индексов в базе данных. Они могут быть добавлены с помощью параметра 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) [source]

Создаёт индекс (B-дерево) в базе данных.

fields

Index.fields

Список имён полей, для которых требуется индекс.

По умолчанию индексы создаются с возрастающим порядком для каждого столбца. Чтобы определить индекс с убывающим порядком для столбца, добавьте дефис перед именем поля.

Например, Index(fields=['headline', '-pub_date']) создаст SQL с (headline, pub_date DESC). Порядок индексов не поддерживается в MySQL. В этом случае убывающий индекс создаётся как обычный индекс.

Поддержка порядка столбцов в SQLite

Поддержка порядка столбцов поддерживается в SQLite 3.3.0+ и только для некоторых форматов файлов базы данных. Подробнее см. в документации SQLite.

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.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.0/ref/models/indexes/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API