Индексы моделей для PostgreSQL ¶
Следующие индексы
для PostgreSQL доступны в django.contrib.postgres.indexes
модуле.
BloomIndex
¶
-
class
BloomIndex
( * выражения , длина = None , columns = () , ** options ) ¶ - Новое в Django 3.1.
Создает индекс цветения .
Чтобы использовать этот доступ к индексу, вам необходимо активировать расширение bloom в PostgreSQL. Вы можете установить его с помощью
BloomExtension
операции миграции.Укажите целое число битов от 1 до 4096 для
length
параметра, чтобы указать длину каждой записи индекса. PostgreSQL по умолчанию - 80.columns
Аргумент принимает кортеж или список до 32 значений , которые являются целым числом бит от 1 до 4095.Изменено в Django 3.2:Позиционный аргумент
*expressions
был добавлен для поддержки функциональных индексов.
BrinIndex
¶
-
class
BrinIndex
( * выражения , autosummarize = None , pages_per_range = None , ** options ) ¶ Создает индекс BRIN .
Установите для
autosummarize
параметра значение,True
чтобы включить автоматическое суммирование с помощью автоочистки.pages_per_range
Аргумент принимает положительное целое число.Изменено в Django 3.2:Позиционный аргумент
*expressions
был добавлен для поддержки функциональных индексов.
BTreeIndex
¶
-
class
BTreeIndex
( * выражения , fillfactor = None , ** параметры ) ¶ Создает индекс B-Tree.
Укажите целочисленное значение от 10 до 100 для параметра fillfactor, чтобы настроить степень упаковки страниц индекса. По умолчанию PostgreSQL - 90.
Изменено в Django 3.2:Позиционный аргумент
*expressions
был добавлен для поддержки функциональных индексов.
GinIndex
¶
-
class
GinIndex
( * выражения , 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
¶
-
class
GistIndex
( * выражения , буферизация = 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
¶
-
class
HashIndex
( * выражения , fillfactor = None , ** параметры ) ¶ Создает хеш-индекс.
Укажите целочисленное значение от 10 до 100 для параметра fillfactor, чтобы настроить степень упаковки страниц индекса. По умолчанию PostgreSQL - 90.
Используйте этот индекс только в PostgreSQL 10 и новее
Хеш-индексы доступны в PostgreSQL уже давно, но в более старых версиях они страдают от ряда проблем с целостностью данных.
Изменено в Django 3.2:Позиционный аргумент
*expressions
был добавлен для поддержки функциональных индексов.
SpGistIndex
¶
-
class
SpGistIndex
( * выражения , fillfactor = None , ** параметры ) ¶ Создает индекс SP-GiST .
Укажите целочисленное значение от 10 до 100 для параметра fillfactor, чтобы настроить степень упаковки страниц индекса. По умолчанию PostgreSQL - 90.
Изменено в Django 3.2:Позиционный аргумент
*expressions
был добавлен для поддержки функциональных индексов.
OpClass()
выражения ¶
-
класс
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
.