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