Индексы моделей PostgreSQL
Ниже приведены индексы моделей PostgreSQL, доступные из модуля django.contrib.postgres.indexes.
BloomIndex
-
class BloomIndex(*expressions, length=None, columns=(), **options) -
Создаёт индекс bloom.
Для использования этого индекса необходимо активировать расширение bloom в PostgreSQL. Его можно установить с помощью операции миграции
BloomExtension.Укажите целое число от 1 до 4096 для параметра
length, чтобы задать длину каждой записи индекса. По умолчанию в PostgreSQL используется 80.Аргумент
columnsпринимает кортеж или список до 32 значений, которые представляют собой целые числа от 1 до 4095.
BrinIndex
-
class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options) -
Создаёт индекс BRIN.
Установите параметр
autosummarizeвTrue, чтобы включить автоматическое обобщение, которое будет выполняться autovacuum.Аргумент
pages_per_rangeпринимает положительное целое число.
BTreeIndex
-
class BTreeIndex(*expressions, fillfactor=None, **options) -
Создаёт индекс B-дерева.
Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется 90.
GinIndex
-
class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options) -
Создаёт индекс gin.
Чтобы использовать этот индекс для типов данных, не содержащихся в встроенных классах операторов, необходимо активировать расширение btree_gin в PostgreSQL. Его можно установить с помощью операции миграции
BtreeGinExtension.Установите параметр
fastupdateвFalse, чтобы отключить технику быстрого обновления GIN, которая включена по умолчанию в PostgreSQL.Укажите целое число килобайт для параметра gin_pending_list_limit, чтобы настроить максимальный размер очереди ожидания GIN, которая используется при включенном
fastupdate.
GistIndex
-
class GistIndex(*expressions, buffering=None, fillfactor=None, **options) -
Создаёт индекс GiST. Эти индексы автоматически создаются для пространственных полей с
spatial_index=True. Они также полезны для других типов, таких какHStoreFieldили диапазонные поля.Чтобы использовать этот индекс для типов данных, не содержащихся в встроенных классах операторов GiST, необходимо активировать расширение btree_gist в PostgreSQL. Его можно установить с помощью операции миграции
BtreeGistExtension.Установите параметр
bufferingвTrueилиFalse, чтобы вручную включить или отключить построение буфера индекса.Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется 90.
HashIndex
-
class HashIndex(*expressions, fillfactor=None, **options) -
Создаёт хеш-индекс.
Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется 90.
SpGistIndex
-
class SpGistIndex(*expressions, fillfactor=None, **options) -
Создаёт индекс SP-GiST.
Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется 90.
Изменено в Django 4.1:Добавлена поддержка охватывающих индексов SP-GiST в PostgreSQL 14+.
OpClass() выражения
-
class OpClass(expression, name) -
Выражение
OpClass()представляетexpressionс настраиваемым классом операторов, который может использоваться для определения функциональных индексов, функциональных уникальных ограничений или ограничений исключений. Для его использования необходимо добавить'django.contrib.postgres'вINSTALLED_APPS. Установите параметрnameна имя класса операторов.Например:
Index( OpClass(Lower('username'), name='varchar_pattern_ops'), name='lower_username_idx', )создаёт индекс на
Lower('username'), используяvarchar_pattern_ops.UniqueConstraint( OpClass(Upper('description'), name='text_pattern_ops'), name='upper_description_unique', )создаёт уникальное ограничение на
Upper('description'), используяtext_pattern_ops.ExclusionConstraint( name='exclude_overlapping_ops', expressions=[ (OpClass('circle', name='circle_ops'), RangeOperators.OVERLAPS), ], )создаёт ограничение исключения на
circle, используяcircle_ops.Изменено в Django 4.0:Добавлена поддержка функциональных уникальных ограничений.
Изменено в Django 4.1:Добавлена поддержка ограничений исключений.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.1/ref/contrib/postgres/indexes/