1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Optimiser les requĂŞtes MySQL
Ce guide est conçu pour vous aider à alléger et optimiser vos bases de données chez Infomaniak.
Préambule
- Le nombre et la taille des bases de données sont illimités.
- Toutefois, il est crucial d'optimiser vos tables (via des index) pour éviter de surcharger le serveur et garantir un affichage rapide de votre site, surtout lorsque le volume de données augmente.
Optimiser les requĂŞtes
Les index sont essentiels pour les performances : ils fonctionnent comme le sommaire d'un livre, permettant à MySQL/MariaDB de trouver une information sans lire toutes les pages. Sans index, le serveur doit effectuer un "scan complet" de la table, ce qui est très gourmand en ressources.
Un index est particulièrement efficace sur les colonnes utilisées pour filtrer les résultats (clause WHERE), pour effectuer des jointures entre tables (JOIN) ou pour trier les données (ORDER BY).
Analyser avec EXPLAIN
Avant d'ajouter un index, il faut identifier la requĂŞte lente. La commande EXPLAIN (disponible aussi via l'interface de phpMyAdmin) permet de simuler la requĂŞte.
Observez la colonne "rows" (nombre de lignes analysées) et la colonne "key" (clé utilisée). Si "rows" est élevé et que "key" est vide (NULL), il est fortement recommandé de créer un index.
Ajouter des index
Pour ajouter un index, vous pouvez utiliser l'onglet "Structure" de phpMyAdmin ou la commande SQL suivante :
ALTER TABLE nom_de_table ADD INDEX nom_index (colonne_cible);Note : N'indexez que les colonnes nécessaires. Trop d'index peuvent ralentir l'ajout ou la modification de données (INSERT/UPDATE).
En savoir plus / Références
Documentation MySQL 8.0 : Optimisation et Index
Documentation MySQL 8.0 : Comprendre EXPLAIN