Индексы моделей 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, чтобы включить автоматическое обобщение, которое будет выполняться autovacuum.Аргумент
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.2/ref/contrib/postgres/indexes/