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

Comment améliorer les performances des requêtes avec order by, group by et joins

Étant donné que la requête est déjà assez simple, les options que j'examinerais sont ...

  • Plan d'exécution (pour trouver les index manquants que vous pourriez ajouter)
  • mise en cache (pour s'assurer que SQL a déjà toutes les données dans la RAM)
  • dénormalisation (pour transformer la requête en sélection plate)
  • mettre en cache les données dans l'application (afin que vous puissiez utiliser quelque chose comme PLINQ dessus)
  • Utiliser un magasin basé sur RAM (redis, élastique)
  • Ajustements de groupe de fichiers (déplacez physiquement la base de données vers des disques plus rapides)
  • Partitionnez vos tables (pour répartir les données brutes sur plusieurs disques physiques)

Plus vous avancez dans cette liste, plus les solutions deviennent complexes. Je suppose que cela dépend de la rapidité avec laquelle vous avez besoin de la requête et de la mesure dans laquelle vous avez besoin de votre solution pour évoluer.