Индексы моделей для PostgreSQL

Следующие индексы для PostgreSQL доступны в django.contrib.postgres.indexesмодуле.

BloomIndex

classBloomIndex ( * выражения , длина = None , columns = () , ** options )
Новое в Django 3.1.

Создает индекс цветения .

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

Укажите целое число битов от 1 до 4096 для length параметра, чтобы указать длину каждой записи индекса. PostgreSQL по умолчанию - 80.

columnsАргумент принимает кортеж или список до 32 значений , которые являются целым числом бит от 1 до 4095.

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

BrinIndex

classBrinIndex ( * выражения , autosummarize = None , pages_per_range = None , ** options )

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

Установите для autosummarizeпараметра значение, Trueчтобы включить автоматическое суммирование с помощью автоочистки.

pages_per_rangeАргумент принимает положительное целое число.

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

BTreeIndex

classBTreeIndex ( * выражения , fillfactor = None , ** параметры )

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

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

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

GinIndex

classGinIndex ( * выражения , fastupdate = None , gin_pending_list_limit = None , ** options )

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

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

Установите для fastupdateпараметра значение, Falseчтобы отключить метод быстрого обновления GIN, который по умолчанию включен в PostgreSQL.

Укажите целое число байтов для параметра gin_pending_list_limit, чтобы настроить максимальный размер ожидающего списка GIN, который используется, когда fastupdateон включен.

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

GistIndex

classGistIndex ( * выражения , буферизация = None , fillfactor = None , ** параметры )

Создает индекс GiST . Эти индексы автоматически создаются для пространственных полей с расширением spatial_index=True. Они также полезны для других типов, например HStoreFieldдля полей диапазона .

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

Установите для bufferingпараметра значение Trueили, Falseчтобы вручную включить или отключить построение буферизации индекса.

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

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

HashIndex

classHashIndex ( * выражения , fillfactor = None , ** параметры )

Создает хеш-индекс.

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

Используйте этот индекс только в PostgreSQL 10 и новее

Хеш-индексы доступны в PostgreSQL уже давно, но в более старых версиях они страдают от ряда проблем с целостностью данных.

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

SpGistIndex

classSpGistIndex ( * выражения , fillfactor = None , ** параметры )

Создает индекс SP-GiST .

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

Изменено в Django 3.2:

Позиционный аргумент *expressionsбыл добавлен для поддержки функциональных индексов.

OpClass()выражения

Новое в Django 3.2.
классOpClass ( выражение , имя )

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.

Copyright ©2021 All rights reserved