Индексы конкретной модели 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
*expressionswas 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
*expressionswas 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
*expressionswas 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
fastupdateis enabled.Changed in Django 3.2:Positional argument
*expressionswas 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
*expressionswas 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
*expressionswas 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
*expressionswas added in order to support functional indexes.
Выражения OpClass()¶
- class OpClass(expression, name)¶
An
OpClass()expression represents theexpressionwith a custom operator class that can be used to define functional indexes. To use it, you need to add'django.contrib.postgres'in yourINSTALLED_APPS. Set thenameparameter 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')usingvarchar_pattern_ops.