Spec-Zone.ru › Django 5.0

Индексы моделей, специфичные для 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API