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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par tryan, 12 Octobre 2010.

  1. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    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
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 207
    J'aime reçus:
    365
    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 ;)
     
  3. Anto1982
    Anto1982 WRInaute passionné
    Inscrit:
    7 Mai 2009
    Messages:
    1 113
    J'aime reçus:
    0
    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?
     
  4. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    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.
     
  5. funnic
    funnic Nouveau WRInaute
    Inscrit:
    14 Novembre 2008
    Messages:
    11
    J'aime reçus:
    0
    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
     
  6. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    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.
     
  7. Aaarrrgggh
    Aaarrrgggh WRInaute occasionnel
    Inscrit:
    16 Mars 2009
    Messages:
    298
    J'aime reçus:
    0
    Le tout en une seule table aurait pu suffire, non ?
     
  8. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    Pareil, je vois mal pourquoi il faut 2 tables...
     
  9. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 601
    J'aime reçus:
    4
    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 ?
     
  10. Anto1982
    Anto1982 WRInaute passionné
    Inscrit:
    7 Mai 2009
    Messages:
    1 113
    J'aime reçus:
    0
    Oui, tiens c'est vrai... pourquoi 2 tables... (??)
     
  11. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    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.
     
  12. nickargall
    nickargall WRInaute accro
    Inscrit:
    13 Juin 2005
    Messages:
    6 601
    J'aime reçus:
    4
    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:
     
  13. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    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.
     
Chargement...
Similar Threads - Fonctions requêtes SQL Forum Date
Problème de fonctions synchrone/asynchrone Développement d'un site Web ou d'une appli mobile 24 Janvier 2021
Stocker dans des variables php les fonctions MySql Développement d'un site Web ou d'une appli mobile 2 Février 2019
un bon livre blanc ou un bon tuto sur les fonctions avancées ? Google Analytics 17 Février 2017
Probleme avec les fonctions {if}{else if}{else} Développement d'un site Web ou d'une appli mobile 8 Mai 2015
Quelques questions à propos des fonctions Administration d'un site Web 30 Mars 2015
Fonctions qui ne marchent pas selon les navigateurs Développement d'un site Web ou d'une appli mobile 20 Juin 2013
Besoin d'aide avec les fonctions Développement d'un site Web ou d'une appli mobile 30 Janvier 2013
Pages et fonctions orphelines Développement d'un site Web ou d'une appli mobile 11 Septembre 2012
Connexion MySQL valide dans des fonctions dans un script inclus ? Développement d'un site Web ou d'une appli mobile 15 Janvier 2012
Appel de fonctions PHP Développement d'un site Web ou d'une appli mobile 27 Avril 2011
liste des fonctions FACEBOOK Facebook 17 Mars 2011
Convention de nommage des noms de fonctions Développement d'un site Web ou d'une appli mobile 16 Février 2011
Garder en mémoire des variables ou des fonctions sous apache Développement d'un site Web ou d'une appli mobile 10 Février 2011
Question api Facebook : recherches deux fonctions Développement d'un site Web ou d'une appli mobile 13 Décembre 2010
Questions à propos de fonctions sur les chaînes de caractères Développement d'un site Web ou d'une appli mobile 16 Novembre 2010
Question sur les fonctions php Développement d'un site Web ou d'une appli mobile 22 Octobre 2010
insertion de fonctions couleur dans la balise <MAP> ? Développement d'un site Web ou d'une appli mobile 14 Février 2010
Fonctions spéciales annuairistes Annuaires et moteurs 1 Février 2010
En vue d'une migration des fonctions mysql_*() vers l'interface PDO objet Développement d'un site Web ou d'une appli mobile 21 Janvier 2010
Recherche class/fonctions sur la validation de formulaires Développement d'un site Web ou d'une appli mobile 15 Mai 2009