IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Grosse requête ou plusieurs petites ?


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Grosse requête ou plusieurs petites ?
    Bonjour !

    J'ai une question existentielle.
    Je développe un petit moteur de recherche sur une appli web,
    et je souhaite afficher mes résultats 20 par 20 (histoire de pas se retrouver avec 1600 résultats sur une seule page !)

    J'ai donc une question de novice a qui on donne plusieurs sons de cloche :
    1/ Je fais une requête en ramenant tous mes résultats d'un coup, puis je gère l'affichage de 20 résultats avec mon php ?
    2/ Je fais des requêtes avec un rownum <= 20 ou quelque chose comme ca qui me ramène mes résultats 20 par 20 ?

    Merci pour vos réponses, si je me suis mal exprimée demandez moi !!

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Si c'est du mysql sert toi de la clause LIMIT qui limitera le nombre d'enregistrements retournés

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse rapide !
    Ce n'est pas du mySQL, c'est du Oracle....et a priori le LIMIT n'existe pas..enfin, d'après mes recherches google !..quelqu'un pourrait t'il me confirmer l'info svp ?

    Au point du vue requête, c'est pas embetant de faire des aller retour entre la base et le client ?

  4. #4
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par Pointu
    Merci pour ta réponse rapide !
    Ce n'est pas du mySQL, c'est du Oracle....et a priori le LIMIT n'existe pas..enfin, d'après mes recherches google !..quelqu'un pourrait t'il me confirmer l'info svp ?

    Au point du vue requête, c'est pas embetant de faire des aller retour entre la base et le client ?

    Je confirme sous Oracle ya pas (c'est bien dommage car ça me servirait bien :'( )

    Après faire des aller retours entre la base et le client ça va dépendre du nombre d'utilisateurs connectés simultanément, des possibilités de ta base et tout ça...

    Sinon tu pourrais sélectionner tes enregistrements en limitant à partir de l'index de ta table, et quand tu appelles la page suivante ca incrémente ta limite d'index de +20 par exemple...

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Vi effectivement c'était une idée aussi....mon doute subsiste sur le fait de demander une fois un truc assez gros, ou plusieurs fois un truc plus petit !!

    Quand tu parles de selectionner les enregistrements, c bien de bouger mon curseur rownum a chaque fois que je clique sur un bouton "résultats suivants"?

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Après plusieurs débats......
    En général lorsqu'on fait une recherche, on a quand même grande chance de trouver son résultat dans les 1ers résultats....
    je vais donc opter pour une mini requête et des mini suivantes si on trouve pas dans les 1ers résultats. L'idéal serait aussi la chose suivante : pendant que le bonhomme regarde ses 1ers résultats, la 2è requête part et ramène les résultats suivants, comme ça, s'il en a besoin, il les obtient instantanément !!

    J'essaie de voir comment faire ça et pitetre je mets un pti bout de code quand j'ai fini....

    Merci beaucoup en tout cas !

  7. #7
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 444
    Points
    3 444
    Par défaut
    Salut,

    Si tu fais du preload, tu vas "doubler" le nombre de requête, pour pas grand chose : le temps investi à préloader, sera récupéré par un autre client qui utilisera le moteur de recherche. Donc je ne te le conseille pas

    La solution du rownum est la meilleure en tout cas : il faut toujours limiter les colonnes également de la requête au strict minimum, c'est pour ça que ton moteur sera super performant si tu utilises un bon rownum, et si tu ne retournes que les colonnes nécessaires à l'affichage de la liste de résultats

    A+

Discussions similaires

  1. Une grosse requête ou plusieurs petites ?
    Par Julien Bodin dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/02/2010, 13h51
  2. une grosse table ou plusieurs petite tables ?
    Par troumad dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 16/12/2007, 14h08
  3. Grosse requête dans plusieurs tables. (JOIN)
    Par Space Cowboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/10/2006, 10h18
  4. Réponses: 2
    Dernier message: 17/07/2006, 21h24
  5. 1 "grosse" BD ou plusieurs "petites"
    Par GnouDream dans le forum Optimisations
    Réponses: 5
    Dernier message: 12/07/2006, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo