Les éléments suivants sont des index spécifiques à PostgreSQL disponibles dans le module django.contrib.postgres.indexes
.
BloomIndex
¶BloomIndex
(*expressions, length=None, columns=(), **options)¶Crée un index bloom.
Pour utiliser cet index, vous devez activer l’extension bloom dans PostgreSQL. Vous pouvez l’installer en utilisant l’opération de migration BloomExtension
.
Indiquez un nombre entier de bits de 1 à 4096 dans le paramètre length
pour indiquer la longueur de chaque entrée d’index. La valeur par défaut dans PostgreSQL est 80.
Le paramètre columns
accepte un tuple ou une liste jusqu’à 32 valeurs de nombres entiers de bits de 1 à 4095.
BrinIndex
¶BrinIndex
(*expressions, autosummarize=None, pages_per_range=None, **options)¶Créé un index BRIN.
Définissez le paramètre autosummarize
à True
pour activer le résumé automatique appliqué par autovacuum.
Le paramètre pages_per_range
accepte un nombre entier positif.
BTreeIndex
¶BTreeIndex
(*expressions, fillfactor=None, **options)¶Crée un index B-Tree.
Indiquez un nombre entier entre 10 et 100 pour le paramètre fillfactor afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.
GinIndex
¶GinIndex
(*expressions, fastupdate=None, gin_pending_list_limit=None, **options)¶Créé un index gin.
Pour utiliser cet index sur des types de données ne figurant pas dans les classes d’opérateurs intégrés, vous devez activer l’extension btree_gin dans PostgreSQL. Vous pouvez installer l’extension par une opération de migration BtreeGinExtension
.
Définissez le paramètre fastupdate
à False
pour désactiver la technique de mise à jour GIN rapide qui est activée par défaut dans PostgreSQL.
Provide an integer number of kilobytes to the gin_pending_list_limit
parameter to tune the maximum size of the GIN pending list which is used
when fastupdate
is enabled.
GistIndex
¶GistIndex
(*expressions, buffering=None, fillfactor=None, **options)¶Crée un index GiST. Ces index sont automatiquement créés pour les champs spatiaux ayant spatial_index=True
. Ils sont également utiles pour d’autres types, tels que HStoreField
ou les champs d’intervalle.
Pour utiliser cet index sur des types de données ne figurant pas dans les classes d’opérateurs gist intégrées, vous devez activer l’extension btree_gist dans PostgreSQL. Vous pouvez installer l’extension par une opération de migration BtreeGistExtension
.
Définissez le paramètre buffering
à True
ou False
pour activer ou désactiver manuellement la construction avec tampon de l’index.
Indiquez un nombre entier entre 10 et 100 pour le paramètre fillfactor afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.
HashIndex
¶HashIndex
(*expressions, fillfactor=None, **options)¶Crée un index hash.
Indiquez un nombre entier entre 10 et 100 pour le paramètre fillfactor afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.
SpGistIndex
¶SpGistIndex
(*expressions, fillfactor=None, **options)¶Créé un index SP-GiST.
Indiquez un nombre entier entre 10 et 100 pour le paramètre fillfactor afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.
Support for covering SP-GiST indexes on PostgreSQL 14+ was added.
OpClass()
¶OpClass
(expression, name)¶An OpClass()
expression represents the expression
with a custom
operator class that can be used to define functional indexes, functional
unique constraints, or exclusion constraints. 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.
Par exemple :
Index(
OpClass(Lower('username'), name='varchar_pattern_ops'),
name='lower_username_idx',
)
creates an index on Lower('username')
using varchar_pattern_ops
.
UniqueConstraint(
OpClass(Upper('description'), name='text_pattern_ops'),
name='upper_description_unique',
)
creates a unique constraint on Upper('description')
using
text_pattern_ops
.
ExclusionConstraint(
name='exclude_overlapping_ops',
expressions=[
(OpClass('circle', name='circle_ops'), RangeOperators.OVERLAPS),
],
)
crée une contrainte d’exclusion sur circle
en utilisant circle_ops
.
La prise en charge des contraintes d’unicité sur la base de fonctions a été ajoutée.
Support for exclusion constraints was added.
mars 08, 2023