Fonctions VS requêtes SQL .. le plus rapide ?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 10:51

Bonjour,

Question du jour :

Qu'est ce qui est le plus rapide : une fonction ou une requête SQl selon vous ?

Par exemple si on prend la liste des villes de France basé sur le code postal:

Choix 1:
1ere requête qui affiche à partir d'une table A le code postal puis seconde requête à partir d'une table B qui permet d'afficher le nom de la ville correspondant au code postal.

Choix 2:
1ere requête qui affiche à partir d'une table A le code postal puis une fonction sur le code postal qui va afficher le nom de la ville à partir d'un tableau (ex: cherche_ville($code_postal) ) .

Merci


spout
WRInaute accro
WRInaute accro
 
Messages: 4378
Inscription: 14 Mai 2003

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 10:56

Choix 3:
Une requête qui affiche à partir d'une table A le code postal et une jointure (LEFT JOIN) avec une table B qui permet d'afficher le nom de la ville correspondant au code postal.

Pour la rapidité je ne sais pas il faut faire des tests ;)


Anto1982
WRInaute passionné
WRInaute passionné
 
Messages: 1334
Inscription: 7 Mai 2009

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 11:07

spout a écrit:Choix 3:
Une requête qui affiche à partir d'une table A le code postal et une jointure (LEFT JOIN) avec une table B qui permet d'afficher le nom de la ville correspondant au code postal.

Pour la rapidité je ne sais pas il faut faire des tests ;)


Je pense aussi, mais il ne faut pas oublier que plusieurs villes peuvent avoir le même code postal... Du coup, tu seras peut être quand même obligé d'utiliser les deux...

Un première requête avec le LEFT JOIN qui va te sortir la (ou les villes correspondantes au CP) et ensuite:

si une seule ville (pas de problème, tu l'affiches directement)
si plusieurs villes, tu affiches un petit select

J'ai bon?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 11:26

hargggggg, pourquoi faut il toujours qu'il y est un choix 3 :mrgreen: !!

Compte tenu que j'ai en BD uniquement les codes postaux (entré par le client) lors de l'enregistrement, j'ai tendance à opter pour le choix 2 ... Le choix 3 m'obligerait à insérer en bd toutes les villes+code postaux (près de 40 000 enregistrements) et créer la requête adéquate (avec jointure) que je suis loin de maitriser...

Ceci dit, merci de vos réponses.

funnic
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 14 Nov 2008

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 11:52

la liste des villes et cp se trouve facilement sur le web en csv que tu n'as plus qu'a importer (je n'ai pas de lien sous la main mais j'ai ca pour la belgique) ca pourrait certainement t'aider

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 12:36

Il y a beaucoup de codes postaux qui couvrent plusieurs villes... Ce n'est donc pas une bonne idée de ne stocker que le CP.

Jacques.


Aaarrrgggh
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 394
Inscription: 16 Mar 2009

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 12:45

Le tout en une seule table aurait pu suffire, non ?


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17013
Inscription: 23 Fév 2004

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 12:50

Pareil, je vois mal pourquoi il faut 2 tables...


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 13:53

Pas mieux, pourquoi 2 tables ?
Question qui nous amène à la solution 4 :


- Une table A qui contient au moins les champs

id / cp / ville

puis une requête qui récupère depuis la table A le code postal & la ville en un coup

... non ?


Anto1982
WRInaute passionné
WRInaute passionné
 
Messages: 1334
Inscription: 7 Mai 2009

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 14:02

Oui, tiens c'est vrai... pourquoi 2 tables... (??)

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 14:16

S'il n'y avait qu'une seule ville pour un CP, ça pourrait avoir un sens (ce serait même fortement conseillé). Mais comme ce n'est pas le cas, ça n'a pas beaucoup de sens, puisque le CP seul ne permet pas de trouver la ville. La question maintenant est de savoir quel est le but du jeu ici: s'il s'agit de sortir une adresse complète, alors pour certains CP ce sera facile, pour d'autres ça va poser un problème, et il faudra une sélection manuelle parmi les choix disponibles (ou alors faire appel à des bases autrement plus complètes pour recouper le reste de l'adresse, ou le nom, ou le numéro de téléphone pour trouver la bonne ville).

Pour info, il y a plus de 36000 communes en France, mais seulement environ 6000 codes postaux géographiques (le reste ce sont des CEDEX etc.). Il y a moins de 2000 CP qui correspondent à une seule ville, et plus de 1000 qui ont plus de 10 communes différentes rattachées, le record étant de 46 communes pour un seul code postal d'après la base que j'ai sous la main.

Jacques.


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 15:07

jcaron a écrit:S'il n'y avait qu'une seule ville pour un CP, ça pourrait avoir un sens (ce serait même fortement conseillé). Mais comme ce n'est pas le cas, ça n'a pas beaucoup de sens, puisque le CP seul ne permet pas de trouver la ville.

D'ou l'identification par la clé primaire "id", non ? A moins que ta remarque ne se réfère pas à la solution de ne prendre qu'une table :mrgreen:

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Fonctions VS requêtes SQL .. le plus rapide ?

Message le Mar Oct 12, 2010 15:21

Ca se référait au fait de ne stocker que le CP et d'utiliser une autre table pour faire la correspondance CP/ville.

Jacques.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités