# Base de données et index : définitions

> Une base de données est le système qui stocke et organise, sous forme de tables, l’ensemble des informations d’une boutique : produits, commandes, clients et configuration. Un index est une structure posée sur ces tables pour que la base retrouve une ligne sans les parcourir toutes.

- Source canonique : [https://allaux.fr/glossaire/base-de-donnees](https://allaux.fr/glossaire/base-de-donnees)
- Langue : FR
- Dernière mise à jour : 2026-08-03

## Le cœur invisible de la boutique

PrestaShop et WooCommerce stockent leurs données dans une base de données relationnelle, en général MySQL ou MariaDB. Chaque type d’information vit dans une table dédiée, composée de lignes et de colonnes : une table de produits, une de commandes, une de clients, reliées entre elles par des identifiants. C’est cette organisation qui permet de retrouver instantanément toutes les commandes d’un client donné.

Pour un e-commerçant, la base de données est l’élément le plus critique du site : le thème et les modules peuvent se réinstaller, mais l’historique des commandes et les fiches produits n’existent que dans la base. C’est pourquoi une sauvegarde sérieuse inclut toujours la base, distincte des fichiers, et pourquoi une simple copie de fichiers ne suffit jamais à restaurer une boutique fonctionnelle.

## L’index, ou pourquoi la même base répond vite ou lentement

Un index est une structure qui accélère la recherche dans une table, comme l’index d’un livre permet de trouver une page sans le lire entièrement. Sans index, la base parcourt la table ligne par ligne pour trouver ce qu’on lui demande. Avec un index posé sur une colonne fréquemment recherchée, par exemple id_product, elle atteint directement les lignes concernées. 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. On n’indexe donc pas toutes les colonnes, mais celles réellement sollicitées par les recherches fréquentes. Un manque d’index sur les bonnes colonnes est une cause classique de lenteur sur un catalogue devenu volumineux ; un excès d’index en est une autre, moins visible.

## En pratique

> Sur PrestaShop, les tables portent le préfixe ps_ (par exemple ps_product) ; sur WordPress et WooCommerce, le préfixe est wp_ (par exemple wp_posts), personnalisable à l’installation. Un diagnostic de lenteur commence par l’analyse des requêtes les plus lourdes, avant d’ajouter un index ciblé sur la colonne qui pose problème.

## FAQ

### Peut-on modifier directement les données dans la base ?

C’est possible via un outil comme phpMyAdmin, mais cela reste risqué sans connaissance précise de la structure des tables : une modification mal ciblée peut corrompre des commandes.

### Pourquoi la base de données ralentit-elle parfois une boutique ?

Avec un catalogue volumineux, certaines requêtes deviennent lentes si les tables manquent d’index adaptés ou n’ont jamais été optimisées.

### 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.

### La base est-elle hébergée au même endroit que les fichiers du site ?

Généralement oui chez un hébergeur mutualisé classique, mais certaines configurations séparent le serveur de base de données du serveur web pour la performance.
