Spec-Zone.ru › Django 6.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, deduplicate_items=None, **options) [исходный код]

Создаёт индекс B-Tree.

Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. Значение по умолчанию в PostgreSQL — 90.

Укажите логическое значение для параметра deduplicate_items, чтобы управлять включением дедупликации. По умолчанию в PostgreSQL дедупликация включена.

GinIndex

class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options) [исходный код]

Создаёт индекс GIN.

Чтобы использовать этот индекс для типов данных, отсутствующих среди встроенных классов операторов, необходимо активировать расширение btree_gin в PostgreSQL. Установить его можно с помощью операции миграции BtreeGinExtension.

Установите для параметра fastupdate значение False, чтобы отключить технику быстрого обновления GIN, которая по умолчанию включена в 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/6.0/ref/contrib/postgres/indexes/

Spec-Zone.ru

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