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 table Mysql - Partitionnement


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 105
    Par défaut Optimisation table Mysql - Partitionnement
    Bonjour,
    j'ai besoin de votre expérience avant de me lancer.

    J'ai une BDD mysql (mysql 5) qui contient prés d'1 million d'enregistrements répartis au sein de plusieurs tables classés par ordre alphabétique.

    Table_a ---> tous les enregistrements commençant par la lettre A
    Table_b ---> enregistrement commençant par la lettre b et ainsi de suite pour les autres tables
    Table_c
    ....
    Table_Z

    Ceci a été fait afin de réduire mes requêtes (affichage par ordre alphabétique), mais niveau gestion et recherche cela n'est pas trés simple, car je suis obligé de joindre toutes les tables pour permettre de rechercher un enregistrement.

    Ex: je cherche un article commençant par la lettre A---> ma requete interroge que la table A, donc c'est rapide.

    Mais pour des recherches plus complexes, ex rechercher tous les articles d'un auteur, cela m'impose de joindre toutes les tables , car un auteur peut avoir écrit des articles commençant n'importe quelle lettre.

    De plus, si je veux grouper des valeurs (group by) cela est aussi compliqué...

    Donc ma question, au lieu d'avoir une table pour chaque lettre, mieux vaut t'il pas procéder directement à un partionnement de la table directement par mysql? en suivant ce tutoriel: http://krierjon.developpez.com/mysql/partitionnement/

    Ou pensez vous tout simplement que le partionnement n'est pas indispensable, sachant que le nombre d'enregistrements est proche actuellement de 1 millions et va rapidement être multiplié par 5 ou 6 (soit 6 millions d'enregistrements). (ma table contient prés de 30 colonnes avec pas mal de varchar, donc c assez lourd)

    Mon but est de pouvoir facilement gérer mes données, donc le mieux serait d'avoir l'ensemble de mes données dans une table unique, sans pour autant perdre en performance (le plus souvent, mes requetes sont de type select * where * like ****% ou affichage par type et categorie).

    Merci d'avance pour vos conseils,
    Thibaut

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Le partitionnement MySQL t'offre les deux avantages :
    - travailler rapidement sur des tables plus réduites dans les requêtes LIKE A%
    - travailler comme s'il y avait une seule table dans les autres cas

    Pourquoi hésiter ?

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

Discussions similaires

  1. Partitionnement des tables mysql
    Par devhercule dans le forum Administration
    Réponses: 2
    Dernier message: 28/12/2012, 15h02
  2. [MySQL] Optimisation table mysql
    Par labluegirl dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/10/2009, 17h19
  3. Réponses: 23
    Dernier message: 22/10/2008, 17h31
  4. Réponses: 5
    Dernier message: 18/07/2008, 12h40
  5. Optimiser les tables mysql, nécessaire ?
    Par Michaël dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/07/2005, 18h11

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