Index de modèles spécifiques à PostgreSQL¶
Les éléments suivants sont des index spécifiques à PostgreSQL disponibles dans le module django.contrib.postgres.indexes
.
BloomIndex
¶
-
class
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.Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
BrinIndex
¶
-
class
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.Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
BTreeIndex
¶
-
class
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.
Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
GinIndex
¶
-
class
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.Indiquez un nombre entier d’octets dans le paramètre gin_pending_list_limit pour ajuster la taille maximale de la liste d’attente GIN qui est utilisée lorsque
fastupdate
est activé.Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
GistIndex
¶
-
class
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 queHStoreField
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
ouFalse
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.
Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
HashIndex
¶
-
class
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.
Cet index n’est utilisable qu’à partir de PostgreSQL 10.
Les index hash sont disponibles dans PostgreSQL depuis longtemps, mais ils souffrent d’un certain nombre de problèmes d’intégrité de données dans les anciennes versions.
Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
SpGistIndex
¶
-
class
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.
Changed in Django 3.2:L’argument positionnel
*expressions
a été ajouté afin de prendre en charge les index fonctionnels.
Expressions OpClass()
¶
-
class
OpClass
(expression, name)¶ Une expression
OpClass()
représente l”expression
avec une classe d’opérateur personnalisée permettant de définir des index fonctionnels ou des contraintes d’unicité. Pour l’utiliser, vous devez ajouter'django.contrib.postgres'
dans votre réglageINSTALLED_APPS
. Définissez le paramètrename
au nom de la `classe d'opérateur`_.Par exemple :
Index( OpClass(Lower('username'), name='varchar_pattern_ops'), name='lower_username_idx', )
crée un index sur
Lower('username')
en utilisantvarchar_pattern_ops
.Un autre exemple :
UniqueConstraint( OpClass(Upper('description'), name='text_pattern_ops'), name='upper_description_unique', )
crée un contrainte d’unicité sur
Upper('description')
en utilisanttext_pattern_ops
.Changed in Django 4.0:La prise en charge des contraintes d’unicité sur la base de fonctions a été ajoutée.