Spec-Zone.ru › Django 5.2

Индексы моделей 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/

Spec-Zone.ru

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