Mysql
 sql >> Base de données >  >> RDS >> Mysql

Optimiser la requête MySQL avec plusieurs jointures à gauche

  • Assurez-vous que vous avez des index sur les champs qui se trouvent dans vos instructions WHERE et sur les conditions ON, les clés primaires sont indexées par défaut mais vous pouvez également créer des index manuellement si nécessaire.
  • Vérifiez si vous devez vraiment sélectionner chaque colonne dans tous les tableaux ? Sinon, assurez-vous de ne sélectionner que les colonnes dont vous avez besoin, évitez d'utiliser select*

  • Vérifiez si vous avez vraiment besoin de LEFT JOINS, sinon, utilisez INNER JOINs.

  • Si les performances sont toujours un problème une fois que vous avez fini de peaufiner votre requête, envisagez de dénormaliser votre schéma pour éliminer les jointures

  • Vous pouvez également envisager de réduire la charge sur la base de données en utilisant des applications de mise en cache telles que sphinxsearch et memcached

  • Vérifiez qu'aucune de vos jointures ne concerne des vues plutôt que des tables réelles

références :

http://www.sphinxsearch.com

http://dev.mysql.com/doc/refman /5.0/fr/create-index.html