Индексы моделей, специфичные для 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, **options)[исходный код]¶ Создает индекс B-дерева.
Введите целочисленное значение от 10 до 100 в параметр fillfactor, чтобы настроить степень заполнения страниц индекса. По умолчанию в PostgreSQL используется значение 90.
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.Provide an integer number of kilobytes to the gin_pending_list_limit parameter to tune the maximum size of the GIN pending list which is used when
fastupdateis enabled.
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.
Changed in Django Development version:Добавлена поддержка покрытия индексов SP-GiST на PostgreSQL 14+.
OpClass() выражения¶
-
class
OpClass(expression, name)[исходный код]¶ An
OpClass()expression represents theexpressionwith a custom operator class that can be used to define functional indexes, functional unique constraints, or exclusion constraints. To use it, you need to add'django.contrib.postgres'in yourINSTALLED_APPS. Set thenameparameter to the name of the operator class.Например:
Index( OpClass(Lower('username'), name='varchar_pattern_ops'), name='lower_username_idx', )
creates an index on
Lower('username')usingvarchar_pattern_ops.UniqueConstraint( OpClass(Upper('description'), name='text_pattern_ops'), name='upper_description_unique', )
creates a unique constraint on
Upper('description')usingtext_pattern_ops.ExclusionConstraint( name='exclude_overlapping_ops', expressions=[ (OpClass('circle', name='circle_ops'), RangeOperators.OVERLAPS), ], )
creates an exclusion constraint on
circleusingcircle_ops.Changed in Django Development version:Support for exclusion constraints was added.