Limiter le nombre de jointures dans une requete... utiliser des tableaux ?

Répondre
Sammuel
le 07/07/2008 à 16:14
Sammuel
Salut,

J'ai une requête qui demande une liaison entre 7 tables smiley (user,ville,region,image,etc...) et je me demande si ça ne serait pas mieux de stocker certaines données fixent (qui ne seront jamais modifiées et dont le nombre sera toujours le même) dans des tableaux ?

Exemple, stocker la base de données "region" dans un tableau qui sera stocké dans une page PHP :
$region = array(1 => 'Alsace','Aquitaine','Auvergne','Haute-Normandie',etc ...);


Comme il s'agit de données fixes, et qu'il n'y a pas beaucoup de régions, autant les stocker dans un tableau, non ? Cela évitera de devoir faire une jointure vers la table "region" dans la requête. A moins que la jointure vers la table "region" ne demande pas beaucoup de ressources SQL ?

J'aimerais savoir si vous utiliser ce genre de technique pour alléger vos requêtes ? ou peut être en utilisez vous une autre ? du genre un flux xml ?

Merci !
LupusMic
le 07/07/2008 à 16:28
LupusMic
Tu peux aussi générer une vue à partir de ta méga-requête, puis vérifier que la mise à jour de la vue ne grève pas les performances.

create view v_guignol_complet as select ...


Les vues en MySQL se mettent à jour lors de la modification d'une des tables dont elle dépend. Mais normalement, ça ne refait pas le select à chaque fois que tu consulte la table. En toute logique, l'écriture devrait être légèrement ralentie, et la lecture fortement améliorée.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours