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

Requêtes MySQL Discussion :

optimisation recherche dans une table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de clod83
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Par défaut optimisation recherche dans une table
    bonjour

    j'ai une table qui enregistre les données au fur et a mesure et sans les supprimer(donc pas de récupération de la place avec une autre donnée qui ne serais pas séquentielle)

    je sais donc ou commence année1 , année2 , année3 etc

    si je veut rechercher sur année2 je peut avec offset ne pas balayer année1 pour rien ; mais comment arreter la recherche en arrivant a offset année3 pour ne pas balayer le reste de la table?

    je pourais partitionner la table ok
    mais une question avec la partition garde t'on la table d'origine?

    de plus pourquoi partitionner avec mysql ?
    si je cré une table annéexxxx au début de chaque année cela ne reviens t'il pas au mème?

  2. #2
    SLE
    SLE est déconnecté
    Membre émérite Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Par défaut
    crée un index sur année...

  3. #3
    Membre confirmé Avatar de clod83
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Par défaut
    je dois comprendre une table avec des pointeurs sur la table principale ou se trouvent les enregistrements de l'année convoitée ? ok c'est valable

    mais ça fais une table de plus par an a gerer ;

    je vais peut etre me rabatre l'option une table par an directement

    mais d' une maniere générale j'aurais quand meme aimé trouver une façon de sortir de la recherche lorsque j'ai trouvé mon enregistrement.
    en effet si ce que je cherche est le deuxieme enregistrement d'une table pourquoi tester les 1000 suivants ....

  4. #4
    SLE
    SLE est déconnecté
    Membre émérite Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Par défaut
    un index, ce n'est pas une table en plus par année. C'est un moyen d'optimiser les recherches sur un champ d'une table pour éviter un parcours de toute la table. Il n'y a pas de table supplémentaire à créer.

  5. #5
    Membre confirmé Avatar de clod83
    Profil pro
    Inscrit en
    Février 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 89
    Par défaut
    oui je suis entierement d'accord mais cela ne me dit pas comment je sort de ma recherche une fois toutes mes infos trouvées;

    je vais me retrouver avec mes années triées en ordre avec l'index mais je vais parcourir celui-ci entierement

    de plus pas besoin d'index dans mon cas car les données sont déjas dans l'ordre

  6. #6
    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
    je vais me retrouver avec mes années triées en ordre avec l'index
    Non sans clause ORDER BY aucune garantie, même si avec toutes les lignes stockées dans l'ordre le résultat aura souvent l'air ordonné, mais je le redis aucune garantie sans ORDER BY.
    mais je vais parcourir celui-ci entierement
    Non le SGBD gère de part la structure de l'index comment le lire, il ne lis pas tout l'index.
    de plus pas besoin d'index dans mon cas car les données sont déjas dans l'ordre
    Tout dépend du nombre de données par année et du nombre d'année, si la requête sur une année renvoie un faible pourcentage des lignes de la table alors l'index sera pertinant, sinon non.
    de plus pourquoi partitionner avec mysql ?
    si je cré une table annéexxxx au début de chaque année cela ne reviens t'il pas au mème?
    Une table partitionnée ça reste une seule table, avoir plein de tables préfixées par l'année est une bidouille très contraignante niveau modélisation et dev.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] recherche dans une table
    Par H-bil dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 06/06/2006, 11h26
  2. Recherche dans une table via un formulaire
    Par Z[ee]k dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 11h14
  3. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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