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

MySQL Discussion :

Rechercher une valeur précise dans une table


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 35
    Par défaut Rechercher une valeur précise dans une table
    Bjr à tous !!

    Voilà, pour une raison d'optimisation de mon code, je voulais savoir si, pour rechercher dans une table une valeur précise, la commande "SELECT" était appropriée ?

    Je m'explique : je suppose que, qd on fait un "SELECT" dans une table, c'est la table entière qui est parcourue du 1er au dernier enregistrement, hors moi, je voudrais que, qd le programme trouve la valeur en question dans la table, celui-ci s'arrête (ex : il y a 10 enregistrements ds ma table, la valeur que je recherche est ds le 4ème enregistrement et je veux que le programme s'arrête donc à ce 4ème enregistrement)

    Y a t-il une fonction MySQL qui permette de faire ceci ?
    Merci d'éclairer ma lanterne en espérant avoir été clair

  2. #2
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut Bonjour
    Bonjour;
    J'ai pas compri ta question
    T'utilise un API pour acceder a la base ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 35
    Par défaut
    Citation Envoyé par buggen25 Voir le message
    Bonjour;
    J'ai pas compri ta question
    T'utilise un API pour acceder a la base ?
    Je n'utilise pas d'API. En fait, je voulais savoir s'il existait une fonction MySQL pour rechercher dans une table une valeur précise au lieu d'utiliser une requête de type "SELECT" ?

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Salut,
    Citation Envoyé par tonton54 Voir le message
    Voilà, pour une raison d'optimisation de mon code, je voulais savoir si, pour rechercher dans une table une valeur précise, la commande "SELECT" était appropriée ?
    Oui vu que c'est la seule

    Sinon ce que tu veux faire n'est pas possible au niveau table.

    Par contre si ta requête porte sur un index unique, je suppose que le SGBD s'arrètera de lire l'index quand il aura trouvé la valeur en question car comme il est unique il sait qu'il ne trouvera pas d'autres entrées pour cette valeur.

    Je ne suis pas sûr de ce que j'avance car je ne connais pas vraiment les mécanismes internes des SGBD, mais je doute qu'il bosse pour rien.

    Tes soucis d'optimisation sont ils liés à des problèmes de perf?
    Si oui vérifie tes indexes pour la requête en question, et regarde son plan d'exécution (EXPLAIN).
    Si non, comme chaque problème de perf est spécifique, il est préférable de les traiter quand ils surviennent. (En supposant tout de même que la requête est bien écrite.)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 35
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Salut,

    Oui vu que c'est la seule

    Sinon ce que tu veux faire n'est pas possible au niveau table.

    Par contre si ta requête porte sur un index unique, je suppose que le SGBD s'arrètera de lire l'index quand il aura trouvé la valeur en question car comme il est unique il sait qu'il ne trouvera pas d'autres entrées pour cette valeur.

    Je ne suis pas sûr de ce que j'avance car je ne connais pas vraiment les mécanismes internes des SGBD, mais je doute qu'il bosse pour rien.

    Tes soucis d'optimisation sont ils liés à des problèmes de perf?
    Si oui vérifie tes indexes pour la requête en question, et regarde son plan d'exécution (EXPLAIN).
    Si non, comme chaque problème de perf est spécifique, il est préférable de les traiter quand ils surviennent. (En supposant tout de même que la requête est bien écrite.)
    Merci pour ta réponse skuatamad
    Par contre, je ne sais pas comment fonctionne le système d'index, va falloir que je regarde ça de plus près

  6. #6
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Couper la recherche au premier résultat devrait pouvoir se faire avec un "LIMIT 1", mais ça ne change rien à la complexité de la recherche et sa lenteur, contrairement à une bonne indexation.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/06/2013, 14h29
  2. Réponses: 8
    Dernier message: 05/04/2011, 08h06
  3. Réponses: 82
    Dernier message: 05/02/2011, 14h34
  4. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  5. [Débutant] trouver une valeur précise dans une matrice
    Par lloyd_r dans le forum MATLAB
    Réponses: 8
    Dernier message: 05/06/2009, 16h55

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