Bonjour,
j'aurai besoin de votre avis pour une optimisation d'une requête pour m'aider dans la meilleure pratique,
sur une page j'appelle cette table en sortant en boucle les résultats :
TABLE_NEWS
> TN_ID
> TN_M_ID -> identifiant de l'une des tables ci-dessous
> TN_TYP -> TYP = 1 = TABLE1 / 2 = TABLE2 / 3 = TABLE3 etc...
> TN_MESS
TABLE1
T1_ID etc etc...
TABLE2
T2_ID etc etc...
TABLE3
T3_ID etc etc...
Ma question pour optimiser est la suivante :
Faut-il préférer ce type de code :
Ou bien faire plutôt avec des jointures de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT TN_M_ID, TN_TYP, TN_MESS FROM TABLE_NEWS WHERE ... Puis dans la boucle PHP : SELECT T1_ID ... FROM TABLE1 WHERE T1_ID = TN_M_ID ... LIMIT 1
et ensuite trier en fonction de ce qui s'affiche (mais ça va chercher dans pas mal de table pour rien, je trouve)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT TN_M_ID, TN_TYP, TN_MESS FROM TABLE_NEWS TN LEFT JOIN TABLE1 T1 ON (T1.T1_ID = TN.TN_M_ID && TN.TN_TYP = 1) LEFT JOIN TABLE2 T2 ON (T2.T2_ID = TN.TN_M_ID && TN.TN_TYP = 2) LEFT JOIN TABLE3 T3 ON (T3.T3_ID = TN.TN_M_ID && TN.TN_TYP = 3) LEFT JOIN TABLE4 T4 ON (T4.T4_ID = TN.TN_M_ID && TN.TN_TYP = 4) LEFT JOIN TABLE5 T5 ON (T5.T5_ID = TN.TN_M_ID && TN.TN_TYP = 5) LEFT JOIN TABLE6 T6 ON (T6.T6_ID = TN.TN_M_ID && TN.TN_TYP = 6)
ou bien y-a-t-il une sélection conditionnelle que je ne connaisse pas qui puisse permettre de sélectionner une jointure en fonction du TN_TYP
P.S.: je pose cette question dans un nouveau post car je crois que c'est considéré comme une nouvelle question plutôt
Je voulais vous remercier par avance du temps que vous prendrez pour me donner votre avis d'optimisation pour ce genre de requête pour avoir la meilleure pratique à l'avenir.
Partager