OVH Cloud OVH Cloud

MYSQL - 2 requetes valent mieux qu'une?

1 réponse
Avatar
J-F Portala
Bonjour,
j'utilise mysql avec php.

J'ai une table A contenant des données et des codes correspondant à des
libellés se trouvant dans d'autres tables B C et D.
Lorsque je travaille avec une seule requete pour exploiter la table A,
j'utilise des liaisons pour afficher directement les libelles correspondant
aux codes.

Si je travaille en plusieurs temps, j'effectue les calculs en gardant les
codes des libellés, puis je renvoie une requete pour avoir les libelles.

La seconde méthode est bien plus rapide.

Est ce normal, ou y a t il une methode pour que la requete soit plus rapide
dans le premier cas.

table A
{
codeuser;
largeur,
longueur,
epaisseur,
codearticle,
date}

table B (codeuser,nomuser)
table C(codearticle,nomarticle)

une seule requete:
select
sum(a.largeur),sum(a.longueur),sum(a.epaisseur),b.nomuser,c.nomarticle from
A a,B b,C c where
a.codeuser=b.codeuser and a.codearticle = b.codearticle and
date > datedebut and date < datefin group by a.codeuser,a.codearticle

plusieurs requetes:
select sum(largeur),sum(longueur),sum(epaisseur),codeuser,codearticle from A
where
date > datedebut and date < datefin group by codeuser,codearticle
pour chaque article et user
select b.nomuser from B b,A a where a.codeuser=b.codeuser
select b.nomarticle from B b,A a where a.codearticle=b.codarticle


merci de vos opinions
Jeff

1 réponse

Avatar
Khône
Salut

j'utilise mysql avec php.


Moi aussi

La seconde méthode est bien plus rapide.


Je trouve également

Est ce normal, ou y a t il une methode pour que la requete soit plus


rapide
dans le premier cas.


A priori MySQL est réputé pour être rapide sur les requêtes SELECT mais
pas pour être une flèche en jointure.
Au risque de faire hurler les SQLiens, pour mes développements je n'utilise
que des requêtes successives sans jointure (les tables sont créées avec des
index judicieusement placés) et ça tourne très bien

Khône