• 1.11
  • dev
  • Documentation version: 2.0

Référence des index de modèle

New in Django 1.11.

Les classes d’index facilitent la création d’index de base de données. Elles peuvent être ajoutées avec l’option Meta.indexes. Ce document détaille les références d’API de Index ce qui inclut les options d’index.

Référencement des index intégrés

Les index sont définis dans django.db.models.indexes, mais par commodité ils sont importés dans django.db.models. La convention standard est d’utiliser from django.db import models et de se référer aux index avec models.<IndexClass>.

Options d”Index

class Index(fields=[], name=None, db_tablespace=None)[source]

Crée un index (B-Tree) dans la base de données.

fields

Index.fields

Une liste de noms de champs sur lesquels l’index doit porter.

Par défaut, les index sont créés avec un tri croissant sur chaque colonne. Pour définir un index avec un tri décroissant sur une certaine colonne, ajoutez un tiret devant le nom du champ.

Par exemple, Index(fields=['headline', '-pub_date']) produit un code SQL contenant (headline, pub_date DESC). Le tri dans les index n’est pas géré par MySQL. Dans ce cas, un index avec tri décroissant est traité comme un index normal.

Prise en charge du tri sur les colonnes avec SQLite

Le tri sur les colonnes est pris en charge à partir de SQLite 3.3.0 et seulement pour certains formats de fichier de base de données. Consultez la documentation de SQLite pour plus de détails.

name

Index.name

Le nom de l’index. Si name n’est pas fourni, Django va générer automatiquement un nom. Par compatibilité avec les différentes bases de données, les noms d’index ne peuvent pas être plus longs que 30 caractères et ne doivent pas commencer par un nombre (0-9) ni par un soulignement (_).

db_tablespace

Index.db_tablespace
New in Django 2.0.

The name of the database tablespace to use for this index. For single field indexes, if db_tablespace isn’t provided, the index is created in the db_tablespace of the field.

If Field.db_tablespace isn’t specified (or if the index uses multiple fields), the index is created in tablespace specified in the db_tablespace option inside the model’s class Meta. If neither of those tablespaces are set, the index is created in the same tablespace as the table.

Voir aussi

Pour une liste des index spécifiques à PostgreSQL, voir django.contrib.postgres.indexes.

Back to Top