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

Requêtes JOIN vs requêtes multiples

Pour les jointures internes, une seule requête a du sens, puisque vous n'obtenez que des lignes correspondantes. Pour les jointures à gauche, plusieurs requêtes sont bien meilleures... regardez le benchmark suivant que j'ai fait :

  1. Requête unique avec 5 jointures

    requête :8,074508 secondes

    taille du résultat :2268000

  2. 5 requêtes consécutives

    temps de requête combiné :0,00262 seconde

    taille du résultat :165 (6 + 50 + 7 + 12 + 90)

.

Notez que nous obtenons les mêmes résultats dans les deux cas (6 x 50 x 7 x 12 x 90 =2268000)

les jointures à gauche utilisent exponentiellement plus de mémoire avec des données redondantes.

La limite de mémoire peut ne pas être aussi mauvaise si vous ne faites qu'une jointure de deux tables, mais généralement trois ou plus et cela vaut des requêtes différentes.

En passant, mon serveur MySQL est juste à côté de mon serveur d'application... donc le temps de connexion est négligeable. Si votre temps de connexion est de quelques secondes, alors il y a peut-être un avantage

Franck