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

Administration MySQL Discussion :

Partitionnement des tables mysql


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 59
    Points
    59
    Par défaut Partitionnement des tables mysql
    Bonsoir à tous,

    J'ai une table qui contient 30 millions d'enregistrements. Pour garantir l'efficacité de mes requêtes je pense à utiliser la technique de partitionnement des tables mysql.

    Pour cela j'ai cherché le syntaxe et les techniques utilisé pour ce type d'opérations mais toujours sans vain !! En effet, j'aimerai bien décomposer les tables selon une colonne thread qui est de type varchar !

    J'ai pensé à décomposer cette table à 30 sous tables mais j'ai pas trouver l'instruction ou la commande exacte pour faire ce partitionnement !!

    Avez-vous une idée s'il vous plaît

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Avant de penser à la défragmentation, la table est-elle correctement indexée ?
    Plus généralement, la base de données est-elle bien modélisée ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    le partitionnement est toujours mieux à penser avant que pendant la phase d'exploitation

    30 million d'enregistrements ça commence à faire surtout si tu as des lignes longue et des jointures

    déjà comme te le suggère cinephil, voir les optimisations classiques (index, réglages des buffers) si le nombre de lignes ne grossit pas trop vite...

    tu peux ensuite appliquer un partitionnement vertical, en faisant 2 tables:
    • une avec les données qui changent ou servent souvent
    • une avec les données (surtout texte) qui changent peu

    ça permet de limiter la longueur des lignes et donc mettre plus de lignes en buffer

    ensuite tu as le partitionnement horizontal là tu peux:
    • le faire à la main en créant des tables à la main, mais c'est pas forcément simple à maintenir
    • le faire en utilisant le système de partition de mysql (tu n'as pas beaucoup cherché). attention les index peuvent alors devenir contre productif sur la table concernée, il faut bien lire la doc


    les partitions sont à mettre en place si tu as des tables qui ont ou auront tendance à croitre rapidement et seront de grande taille
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

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

Discussions similaires

  1. Partitionner des tables pendant l'import
    Par pat29 dans le forum Administration
    Réponses: 1
    Dernier message: 03/12/2007, 18h00
  2. [MySQL] Modification des tables MySQL
    Par Medmidou dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/08/2007, 14h19
  3. Alimenter des tables MySQL
    Par youdev dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2006, 15h09
  4. Lier des tables MySQL / numérotation auto
    Par alfigor dans le forum Requêtes
    Réponses: 5
    Dernier message: 09/05/2006, 09h34
  5. Partitionner des tables existantes
    Par zestrellita dans le forum Administration
    Réponses: 13
    Dernier message: 29/04/2004, 16h49

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