Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité régulier
    Inscrit en
    octobre 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 44
    Points : 7
    Points
    7

    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 Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 817
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 817
    Points : 23 076
    Points
    23 076

    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 de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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
    Expert Confirmé Avatar de ericd69
    Homme Profil pro Eric Dureuil
    Développeur informatique
    Inscrit en
    avril 2011
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric Dureuil
    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 894
    Points : 2 980
    Points
    2 980

    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...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •