Индексы моделей, специфичные для 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 Fast Update, который по умолчанию включён в 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.
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 Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.0/ref/contrib/postgres/indexes/