Spec-Zone.ru › Django 3.2

Индексы моделей, специфичные для PostgreSQL

Ниже приведены индексы, специфичные для PostgreSQL, доступные из модуля django.contrib.postgres.indexes.

BloomIndex

class BloomIndex(*expressions, length=None, columns=(), **options)
Новое в Django 3.1.

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

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

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

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

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

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

BrinIndex

class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)

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

Установите параметр autosummarize в True, чтобы включить выполнение автоматической сворачивания (summarization) автовакуумом.

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

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

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

BTreeIndex

class BTreeIndex(*expressions, fillfactor=None, **options)

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

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

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

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

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 включено.

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

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

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.

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

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

HashIndex

class HashIndex(*expressions, fillfactor=None, **options)

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

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

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

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

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

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

SpGistIndex

class SpGistIndex(*expressions, fillfactor=None, **options)

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

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

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

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

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

Новое в Django 3.2.
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.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/3.2/ref/contrib/postgres/indexes/

Spec-Zone.ru

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