Индексы моделей PostgreSQL
Ниже приведены индексы моделей, специфичные для PostgreSQL, доступные из модуля django.contrib.postgres.indexes.
BloomIndex
-
class BloomIndex(*expressions, length=None, columns=(), **options)[source] -
Создаёт индекс bloom.
Для использования этого индекса необходимо активировать расширение bloom в PostgreSQL. Вы можете установить его, используя операцию миграции
BloomExtension.Укажите целое число бит от 1 до 4096 в параметре
length, чтобы указать длину каждой записи индекса. По умолчанию в PostgreSQL используется 80.Аргумент
columnsпринимает кортеж или список до 32 значений, являющихся целыми числами бит от 1 до 4095.
BrinIndex
-
class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)[source] -
Создаёт индекс BRIN.
Установите параметр
autosummarizeв значениеTrue, чтобы включить выполнение автоматической агрегации автовакуумом.Аргумент
pages_per_rangeпринимает положительное целое число.
BTreeIndex
-
class BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)[source] -
Создаёт индекс B-дерева.
Укажите целое число от 10 до 100 в параметре fillfactor, чтобы настроить, насколько плотно будут упакованы страницы индекса. По умолчанию в PostgreSQL используется 90.
Укажите логическое значение параметру deduplicate_items, чтобы управлять включением/выключением дедупликации. По умолчанию дедупликация включена в PostgreSQL.
Изменено в Django 5.1:Добавлен параметр
deduplicate_items.
GinIndex
-
class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)[source] -
Создаёт индекс gin.
Для использования этого индекса с типами данных, не входящими в встроенные операторные классы, необходимо активировать расширение btree_gin в PostgreSQL. Вы можете установить его, используя операцию миграции
BtreeGinExtension.Установите параметр
fastupdateв значениеFalse, чтобы отключить технику GIN Fast Update, которая включена по умолчанию в PostgreSQL.Укажите целое число килобайт в параметре gin_pending_list_limit, чтобы настроить максимальный размер очереди GIN, которая используется при
fastupdate.
GistIndex
-
class GistIndex(*expressions, buffering=None, fillfactor=None, **options)[source] -
Создаёт индекс 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)[source] -
Создаёт индекс хеша.
Укажите целое число от 10 до 100 в параметре fillfactor, чтобы настроить, насколько плотно будут упакованы страницы индекса. По умолчанию в PostgreSQL используется 90.
SpGistIndex
-
class SpGistIndex(*expressions, fillfactor=None, **options)[source] -
Создаёт индекс SP-GiST.
Укажите целое число от 10 до 100 в параметре fillfactor, чтобы настроить, насколько плотно будут упакованы страницы индекса. По умолчанию в PostgreSQL используется 90.
OpClass() выражения
-
class OpClass(expression, name)[source] -
Выражение
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 Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.1/ref/contrib/postgres/indexes/