Индексы моделей, специфичные для PostgreSQL¶
Ниже перечислены специфические для PostgreSQL indexes, доступные из модуля 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 index.
Установите параметр
autosummarizeв значениеTrue, чтобы включить automatic summarization для выполнения автовакуумирования.Аргумент
pages_per_rangeпринимает целое положительное число.
BTreeIndex¶
-
class
BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)¶ Создает индекс B-дерева.
Введите целочисленное значение от 10 до 100 в параметр fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется значение 90.
Укажите логическое значение для параметра deduplicate_items, чтобы контролировать, включена ли дедупликация. По умолчанию в PostgreSQL включена дедупликация.
Changed in Django 5.1:Был добавлен параметр
deduplicate_items.
GinIndex¶
-
class
GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)¶ Создает gin index.
Чтобы использовать этот индекс для типов данных, отличных от built-in operator classes, вам необходимо активировать btree_gin extension в PostgreSQL. Вы можете установить его с помощью операции миграции
BtreeGinExtension.Установите параметр
fastupdateв значениеFalse, чтобы отключить GIN Fast Update Technique, который включен по умолчанию в PostgreSQL.Введите целое число килобайт в параметр gin_pending_list_limit, чтобы настроить максимальный размер списка ожидающих GIN, который используется, когда включено
fastupdate.
GistIndex¶
-
class
GistIndex(*expressions, buffering=None, fillfactor=None, **options)¶ Создает индекс GiST index. Эти индексы автоматически создаются на пространственных полях с
spatial_index=True. Они также полезны на других типах, таких какHStoreFieldили range fields.Чтобы использовать этот индекс для типов данных, которых нет во встроенном gist operator classes, вам необходимо активировать btree_gist extension в PostgreSQL. Вы можете установить его с помощью операции миграции
BtreeGistExtension.Установите параметр
bufferingв значениеTrueилиFalse, чтобы вручную включить или выключить buffering build индекса.Введите целочисленное значение от 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 index.
Введите целочисленное значение от 10 до 100 в параметр fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется значение 90.
OpClass() выражения¶
-
class
OpClass(expression, name)¶ Выражение
OpClass()представляетexpressionс пользовательским operator class, который можно использовать для определения функциональных индексов, функциональных уникальных ограничений или ограничений исключения. Чтобы использовать его, необходимо добавить'django.contrib.postgres'в вашINSTALLED_APPS. Установите параметрnameв имя operator class.Например:
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.