Disponible pour missions & renforts d’agence · Réponse rapide, par la personne qui intervient

Index de base de données : définition

Un index est une structure qui accélère la recherche d’informations dans une table, un peu comme l’index d’un livre permet de trouver une page sans le lire entièrement.

Décrire mon problème Discuter sur WhatsApp

Un compromis entre vitesse de lecture et coût d’écriture

Sans index, la base doit parcourir ligne par ligne l’intégralité d’une table pour trouver ce qu’on lui demande. Avec un index posé sur une colonne fréquemment recherchée, par exemple id_product, elle peut retrouver directement les lignes concernées. La différence devient très visible sur un catalogue de plusieurs dizaines de milliers de produits : une requête qui prenait plusieurs secondes peut descendre à quelques millisecondes.

Ce gain n’est pas gratuit : chaque index occupe de l’espace disque, et ralentit légèrement les écritures, puisque la base doit le mettre à jour à chaque modification de ligne. C’est pourquoi on n’indexe pas toutes les colonnes, mais celles réellement utilisées dans les recherches fréquentes. Un manque d’index sur les bonnes colonnes est une cause classique de lenteur sur un catalogue devenu volumineux.

Questions fréquentes

Ajouter des index partout améliore-t-il toujours les performances ?
Non, un excès d’index augmente l’espace disque utilisé et ralentit les écritures. L’objectif est d’indexer les colonnes réellement sollicitées par les recherches fréquentes.
Comment savoir si une table manque d’index ?
En repérant d’abord les requêtes lentes, via le profiler PrestaShop (_PS_DEBUG_PROFILING_) ou le journal des requêtes lentes de MySQL. Ni le profiler ni le mode debug ne disent qu’une requête parcourt toute la table : cela se lit en préfixant la requête par EXPLAIN, puis en regardant les colonnes type (ALL signale un parcours complet) et key (NULL signale qu’aucun index n’a été utilisé).
L’ajout d’un index nécessite-t-il de couper la boutique ?
En général non sur une table de taille raisonnable, mais sur une très grosse table il peut verrouiller temporairement des écritures : mieux vaut l’effectuer en heures creuses.

Décrivez votre besoin en 1 minute

Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.

Pourquoi cette définition vous intéresse-t-elle ?
Quelle est votre plateforme, si vous en avez déjà une ? (facultatif)
Une question précise en tête ? (facultatif)

Posez-la telle quelle, la réponse vous reviendra directement.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.

Indiquez au moins un e-mail ou un téléphone pour que je puisse vous répondre.