---
title: "Référence des index de modèle"
version: 2.0
locale: fr
source: https://docs.djangoproject.com/fr/2.0/ref/models/indexes/
canonical: https://djangodocs.dev/fr/2.0/ref/models/indexes/
---
# 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`](/fr/2.0/ref/models/options/#django.db.models.Options.indexes). Ce document détaille les références d’API de [`Index`](#django.db.models.Index) ce qui inclut les [options d’index](#index-options).

> **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`](/fr/2.0/topics/db/models/#module-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)`

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](https://www.sqlite.org/lang_createindex.html) 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**

Le nom de l”[espace de tables de base de données](/fr/2.0/topics/db/tablespaces/) à utiliser pour cet index. Pour les index sur un seul champ et si `db_tablespace` n’est pas indiqué, l’index est créé dans l’espace `db_tablespace` du champ.

Si [`Field.db_tablespace`](/fr/2.0/ref/models/fields/#django.db.models.Field.db_tablespace) n’est pas présent (ou si l’index utilise plusieurs champs), l’index est créé dans l’espace de tables défini dans l’option [`db_tablespace`](/fr/2.0/ref/models/options/#django.db.models.Options.db_tablespace) dans la classe `Meta` du modèle. Si aucun de ces espaces n’est défini, l’index est créé dans le même espace de tables que la table.

> **See also**
>
> Pour une liste des index spécifiques à PostgreSQL, voir [`django.contrib.postgres.indexes`](/fr/2.0/ref/contrib/postgres/indexes/#module-django.contrib.postgres.indexes).
