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 WHERE et les indexer.
- Utiliser la fonction EXIST() au lieu de COUNT() 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 DISTINCT autant que possible
- Utiliser WHERE au lieu de HAVING
- Créer des jointures uniquement avec INNER JOIN (éviter des jointures avec WHERE)
- Utiliser LIMIT pour limiter le volume de résultat
- Utiliser UNION ALL au lieu de UNION autant que possible
- Utiliser UNION WHERE au lieu d’un long WHERE … 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 OR avec 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