• 3.1
  • 5.0
  • 6.1
  • Версия документации: 3.2

Индексы конкретной модели PostgreSQL

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

БлумИндекс

class BloomIndex(*expressions, length=None, columns=(), **options)
New in Django 3.1.

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

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

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

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

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

БринИндекс

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

Creates a BRIN index.

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

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

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

BTreeIndex

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

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

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

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

ДжинИндекс

class GinIndex(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)

Создает gin index.

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

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

Provide an integer number of bytes to the gin_pending_list_limit parameter to tune the maximum size of the GIN pending list which is used when fastupdate is enabled.

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

GistIndex

class GistIndex(*expressions, buffering=None, fillfactor=None, **options)

Создает индекс GiST <https://www.postgresql.org/docs/current/gist.html>_. Эти индексы автоматически создаются для пространственных полей с помощью spatial_index=True. Они также полезны для других типов, таких как HStoreField или поля диапазона.

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

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

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

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

ХэшИндекс

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

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

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

Use this index only on PostgreSQL 10 and later

Hash indexes have been available in PostgreSQL for a long time, but they suffer from a number of data integrity issues in older versions.

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

СпГистИндекс

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

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

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

Changed in Django 3.2:

Positional argument *expressions was added in order to support functional indexes.

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

New in Django 3.2.
class OpClass(expression, name)

An OpClass() expression represents the expression with a custom operator class that can be used to define functional indexes. To use it, you need to add 'django.contrib.postgres' in your INSTALLED_APPS. Set the name parameter to the name of the operator class.

Например:

Index(
    OpClass(Lower('username'), name='varchar_pattern_ops'),
    name='lower_username_idx',
)

creates an index on Lower('username') using varchar_pattern_ops.

Back to Top