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 :

Compression d'une table


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut Compression d'une table
    Bonsoir,

    Je cherche simplement le moyen le plus "simple" à mettre en œuvre pour compresser de manière automatique des tables particulières d'une base (dans le cadre d'une mise en place d'historique)

    J'ai pu lire que mysql proposait de compresser des valeurs qu'on devait stoker dans des BLOB : http://dev.mysql.com/doc/refman/5.1/...functions.html
    Ce n'est pas ce que je recherche, compresser champ par champ n'est pas assez rentable, rare sont mes champs de + de 255 caractères.

    N'est il pas possible comme dans d'autres SGBD de compresser une table entière et la rendre en lecture seule, ou quelque chose dans le genre?

    Pour le moment, j'exporte la table dans un .csv avec les informations nécessaire pour la réimporter, je compresse le fichier, et je stoke le résultat dans un champ LONGBLOB.
    Cette rustine me paraît pas viable à long terme ...

  2. #2
    Membre régulier Avatar de et.rond.et.rond
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par ithurts Voir le message
    Pour le moment, j'exporte la table dans un .csv avec les informations nécessaire pour la réimporter, je compresse le fichier, et je stoke le résultat dans un champ LONGBLOB
    pourquoi tu remets les données dans la base ? s'il s'agit d'un archivage tu peux juste garder le fichier compressé sur le disque dur
    ... petit patapon

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Non non il ne s'agit pas d'un archivage, mais plus un historique, les tables compressées doivent pouvoir eventuellement être en lecture seule.

    Sinon je la remets dans la bdd afin de faciliter les dump hebdomadaire des données en attendant de trouver une réponse à ma question.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le but de ta manip est de gagner en performance ou de gagner de l'espace?

    Car pour les performances si tu veux réaliser une sorte d'historique et ne pas chercher dans tous les champs lors d'une requête global tu peux réaliser des partitions sur ta table (par exemple par date) se qui va te permettre de gagner en perf et de ne pas sortir des données de ta table toutes les années pour faire une sorte de pseudo archivage.

    Si ça peut t'intéresser, tu peux trouver plus d'explications sur le partitionnement là --> http://krierjon.developpez.com/mysql/partitionnement/

    En espérant que ça pourra t'aider...
    A+

    L.G.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Merci pour votre réponse !
    Hélas non je recherche un gain de place, niveau performance j'effectue les statistiques en faisant les jointures des tables 2 par 2.

    J'ai commencé à supprimer d'une table à l'autre les champs qui ne varient pas dans le temps mais cela ne suffit pas.

    Et vu que le projet n'est pas encore complètement spécifié je ne peux pas garder qu'une table de stat ...

    J'ai recommencer à cherché un peu mais mysql ne semble pas proposer de compression "entière" d'une table, il se contente de compresser les tuples.

    Dans tous les cas, voilà où regarder pour la compression de table mysql: http://dev.mysql.com/doc/refman/5.0/en/myisampack.html

  6. #6
    OPi
    OPi est déconnecté
    Membre actif
    Avatar de OPi
    Homme Profil pro
    en recherche d'emploi
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : en recherche d'emploi
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 245
    Points
    245
    Par défaut ENGINE ARCHIVE
    Bonjour.

    J'ai la même question de départ :
    Citation Envoyé par ithurts
    Je cherche simplement le moyen le plus "simple" à mettre en œuvre pour compresser de manière automatique des tables particulières d'une base (dans le cadre d'une mise en place d'historique)

    J'ai pu lire que mysql proposait de compresser des valeurs qu'on devait stoker dans des BLOB : http://dev.mysql.com/doc/refman/5.1/...functions.html
    Ce n'est pas ce que je recherche, compresser champ par champ n'est pas assez rentable, rare sont mes champs de + de 255 caractères.

    N'est il pas possible comme dans d'autres SGBD de compresser une table entière et la rendre en lecture seule, ou quelque chose dans le genre?
    Après en ce qui me concerne je ne conserve pas un historique pour en faire des statistiques.
    Je développe une espèce de Wikipédia : j'ai donc des pages que chacun peut modifier et je dois en garder l'historique, de préférence dans une table compressée. Cette table ne devrait jamais être modifiée, si ce n'est qu'il faut pouvoir y ajouter des éléments.

    Je vais essayer avec un ENGINE ARCHIVE. Sans trop savoir si c'est gênant pour les consultations de cette historique que ce moteur ne permette aucun index...
    DragonSoft DS (informatique) — Johnny Five JF (textes) — Olivier Pirson OPi (mathématiques)
    OPiCitationshttps://bitbucket.org/OPiMedia

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

Discussions similaires

  1. Taille d'une table et option compress
    Par krm75 dans le forum SAS Base
    Réponses: 3
    Dernier message: 17/09/2013, 11h41
  2. Réponses: 8
    Dernier message: 01/10/2010, 10h52
  3. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  4. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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