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 :

Découpage d'une table en plusieurs tables [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Par défaut Découpage d'une table en plusieurs tables
    Bonjour

    J'ai une question

    Lorsque l'on a un trop grand nombre de ligne dans une table est-il souhaitable , pour soulager le serveur, de la scinder en plusieurs tables pour que la machine aille plus vite ?

    Exemple: Une table contenant nom,prenom possède de 10 Millions de lignes

    actuellement j'ai

    Table inscris
    n_ins -> clé
    no -> nom
    pr -> prenom

    Maintenant je voudrais faire

    table num_inscris
    n_ins -> clé

    table a_inscris
    n_ins indexe liée à la clé
    no -> Nom commençant par la lettre a
    pr -> pr

    table b_inscris, c_inscr ...

    Est cette dernière methode va soulager mon seveur dans sa recherche dicotomique des données ?
    Ou faut il que je reste avec une table ?

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut


    Pourquoi ne pas indexer directement ta première table ? je vois pas l'intérêt de la scinder si c'est pour avoir une table avec un seul champ et une autre avec autant de champ qu'avant tes modifications

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Par défaut rep
    le but était de scinder la table en plusieurs table pour accélérer une recherche d'un nom.

    Je pensais que la recherche d'un nom sur une seule table serait beaucoup plus long,(temps machine), que de faire la recherche du nom dans la table qui correspond à sa première lettre.

    Comment tu procèderas toi quand une table qui a des millions de lignes pour la scinder en plusieurs afin d'accélèrer la recherche ?

    Tu l'as laisse tel quel ou tu l'as scinde ?

    Moi je cherche une solution qui permet au serveur d'aller plus vite dans une recherche.

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Bonjour,

    Je suis d'accord avec le prince, indexer la colonne nom devrait augmenter sensiblement les performances.

  5. #5
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Je suis d'accord avec le prince [...]
    Tu peux m'appeler Mathieu

    Sinon je crois que j'avais mal cerné son problème : il souhaite créer une table pour chaque lettre si j'ai bien compris le truc. Mais je ne pense pas (je ne suis pas du tout un expert) que ça change bien grand chose.

    Tu devrais plutôt voir si tu peux pas améliorer tes requêtes, indexer les bons champs, voir quel moteur de stockage tu utilises, ...

    Si tu nous donnes des infos supplémentaires sur ces points on pourra peut-être mieux t'aider.

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par trotters213 Voir le message
    Tu peux m'appeler Mathieu
    Je vais plutôt faire ça, car de toute façon, le fresh prince savait reconnaître une dame à son prénom. Excuses-le Carmen...
    Citation Envoyé par trotters213 Voir le message
    Sinon je crois que j'avais mal cerné son problème : il souhaite créer une table pour chaque lettre si j'ai bien compris le truc. Mais je ne pense pas (je ne suis pas du tout un expert) que ça change bien grand chose.

    Tu devrais plutôt voir si tu peux pas améliorer tes requêtes, indexer les bons champs, voir quel moteur de stockage tu utilises, ...

    Si tu nous donnes des infos supplémentaires sur ces points on pourra peut-être mieux t'aider.
    J'avais bien vu la proposition de carmen avec ses multiples tables (pour lesquelles je conseillerais alors le type MEMORY), et l'idée est très bonne, mais le gain de performances en vaut-il la chandelle ?
    Parce que cela implique des routines de maintenance de ces tables à chaque ajout/modification/suppression de nom.
    Je pense qu'il faut d'abord mesurer les performances en ajoutant un index sur le nom pour voir si cela ne sera pas suffisant, sachant que l'indexation sur les noms est assez performante car les valeurs de champs sont très différentes.

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

Discussions similaires

  1. mettre une table dans plusieurs tables
    Par mat75019 dans le forum Access
    Réponses: 5
    Dernier message: 16/06/2006, 11h46
  2. Scinder une table en plusieurs tables
    Par hyol dans le forum Access
    Réponses: 4
    Dernier message: 22/02/2006, 14h05
  3. [SQL] Une requête dans plusieurs tables
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/12/2005, 16h23
  4. Comment rechercher une chaine dans plusieurs tables ?
    Par tsing dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/11/2005, 18h04
  5. Une seule table VS plusieurs tables
    Par LostControl dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/08/2003, 10h56

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