Voici 16 actions à faire pour optimiser votre requête SQL. L’optimisation permet de réduire le temps d’exécution et les ressources exploitées (CPU et I/O) pour l’exécution de la requête.
- Créer des index sur les tables. Sélectionner les colonnes plus utilisées avec
WHEREet les indexer. - Utiliser la fonction
EXIST()au lieu deCOUNT()pour vérifier l’existence d’un enregistrement dans la table. - Ne sélectionner que les champs utiles (éviter
SELECT *) - Eviter les sous-requêtes dans
WHERE - Eviter
SELECT DISTINCTautant que possible - Utiliser
WHEREau lieu deHAVING - Créer des jointures uniquement avec
INNER JOIN(éviter des jointures avecWHERE) - Utiliser
LIMITpour limiter le volume de résultat - Utiliser
UNION ALLau lieu deUNIONautant que possible - Utiliser
UNION WHEREau lieu d’un longWHERE ... or ... or ... - Exécuter les requêtes de maintenances pendant les périodes calmes en trafic (par exemple les requêtes de nettoyage de la base de données)
- Eviter l’utilisation de
ORavec les jointures - Utiliser des tables temporaires
- Supprimer les index avant d’importer une large set de données et remettre après cela
- Eviter les opérateurs de négation (
!=ou<>) - Réduire la quantité de sous-requêtes