Je me pose une question
Prenons deux tables Mysql liées entre elles par une relation du type à chaque ligne de la table 1 correspond plusieurs lignes de la table 2
Que vaut il mieux faire ?
SELECT T1.champ1, (.....) T1.champN, T2.champ1, (....) T2.champ2 FROM Table1 AS T1 LEFT JOIN Table2 AS T2 ON T1.champX = T2.champY WHERE T1.champZ=Valeur référence
autrement dit une requète qui générera pas mal d'info redondantes
ou bien
SELECT T1.champ1, (.....) T1.champN FROM Table1 AS T1 WHERE T1.champZ=Valeur référence
puis dans une boucle en PHP par exemple lancer autant de requètes que de valeurs différences de T1.champX
SELECT T2.champ1, (....) T2.champ2 FROM Table2 AS T2 WHERE T2.ChampY = ValeurCourantedeT1.champX
La première solution ne génère qu'un seul accès à la base de donnée, mais consomme à mon avis plus de mémoire (à cause des info redondantes). La seconde est la plus économe en mémoire (je pense), mais nécessitent de nombreux accès à la base...
Ma question est peut être ridicule, mais j'ai hérité d'une habitude de développement dans un environnement à très faibles ressources mémoires, où chaque octet compte, et où économiser 10 octets de RAM est très important si c'est possible (microcontroleurs).
Dans le cas de MySQL faut il mieux faire une économie de mémoire ou une économie de connexions ? Y a t il un cas où priviligié l'une ou l'autre ?
Merci d'avance
Partager