Индексы моделей, специфичные для PostgreSQL
Ниже перечислены специфичные для PostgreSQL индексы, доступные из модуля django.contrib.postgres.indexes.
BloomIndex
-
class BloomIndex(*expressions, length=None, columns=(), **options)[исходный код] -
Создаёт индекс bloom.
Чтобы использовать этот тип индекса, необходимо активировать расширение bloom в PostgreSQL. Установить его можно с помощью операции миграции
BloomExtension.Укажите целое число бит от 1 до 4096 в параметре
length, чтобы задать длину каждой записи индекса. Значение по умолчанию в PostgreSQL — 80.Аргумент
columnsпринимает кортеж или список, содержащий не более 32 значений — целых чисел бит от 1 до 4095.
BrinIndex
-
class BrinIndex(*expressions, autosummarize=None, pages_per_range=None, **options)[исходный код] -
Создаёт индекс BRIN.
Установите для параметра
autosummarizeзначениеTrue, чтобы включить автоматическое суммирование, выполняемое autovacuum.Аргумент
pages_per_rangeпринимает положительное целое число.
BTreeIndex
-
class BTreeIndex(*expressions, fillfactor=None, deduplicate_items=None, **options)[исходный код] -
Создаёт индекс B-Tree.
Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. Значение по умолчанию в PostgreSQL — 90.
Укажите логическое значение для параметра deduplicate_items, чтобы управлять включением дедупликации. По умолчанию в PostgreSQL дедупликация включена.
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.
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.
HashIndex
-
class HashIndex(*expressions, fillfactor=None, **options)[исходный код] -
Создаёт хеш-индекс.
Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. Значение по умолчанию в PostgreSQL — 90.
SpGistIndex
-
class SpGistIndex(*expressions, fillfactor=None, **options)[исходный код] -
Создаёт индекс SP-GiST.
Укажите целое число от 10 до 100 для параметра fillfactor, чтобы настроить степень заполнения страниц индекса. Значение по умолчанию в PostgreSQL — 90.
Выражения 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.UniqueConstraint( OpClass(Upper("description"), name="text_pattern_ops"), name="upper_description_unique", )создаёт ограничение уникальности для
Upper('description')с использованиемtext_pattern_ops.ExclusionConstraint( name="exclude_overlapping_ops", expressions=[ (OpClass("circle", name="circle_ops"), RangeOperators.OVERLAPS), ], )создаёт ограничение исключения для
circleс использованиемcircle_ops.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/ref/contrib/postgres/indexes/