Справочник по индексам моделей
Классы индексов упрощают создание индексов в базе данных. Они могут быть добавлены с помощью параметра 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
Имя пространства имен базы данных, которое следует использовать для этого индекса. Для индексов из одного поля, если 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/