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 :

Limiter l'overhead dans des petites tables TRES peuplées ?


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 1
    Par défaut Limiter l'overhead dans des petites tables TRES peuplées ?
    Bonjour,

    Je suis dans le cas un peu atypique, je conçois une base dans laquelle je dois injecter des gigas, voir des terras (!!!), de données issues d'un calcul scientifique distribué à échelle mondiale, ce afin de rationnaliser l'analyse des données. Atypique, car je m'apprète à écrire des volumes énormes, alors que je ne lirai que quelques fois.

    L'immense majorité du stockage se retrouve concentrée dans une table "Interface_has_Residue" dont le schema est le suivant :

    CREATE TABLE `interface_has_residue` (
    `Interface_idInterface` int(11) NOT NULL,
    `Residue_idResidue` int(11) NOT NULL,
    PRIMARY KEY (`Interface_idInterface`,`Residue_idResidue`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    En testant ma base avec un petit échantillon de 3 000 000 d'enregistrements pour la table, j'ai réalisé avec horreur que l'espace consacré à cet échantillon est de l'ordre de 86 Mo, dont 58 Mo pour l'index !!!

    J'imagine donc me passer de l'index (ce qui ralentira le traitement lors de l'analyse) mais, meme sans l'index, ça me parait un peu bizarre que mes données occupent 30 Mo (C'est à dire 10 octets/Enregistrement là où 2 entiers sur 32 bits devraient en occuper 8, non ?)

    La question de fond, du coup, c'est :

    Comment créer des tables "lègères" (overhead minimal) en MySQL ?
    Quelle "engine" ou paramètres utiliser pour ça ?

    Je suis un peu nouveau dans le forum, et ai sincèrement cherché un thread relatif à quelquechose de similaire, mais vous prie de m'excuser si cette réponse a déjà été posée et répondue ...
    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Par défaut
    Pour ce qui est des 2 octets supplémentaires, j'imagine que c'est pour la régie interne de MySQL. Alors voyons ailleurs.
    Connais-tu les types SMALLINT (2 octets) et MEDIUMINT (3 octets)?
    Si tu connais d'avance les bornes minimales et maximales des données éventuelles, alors tu pourrais peut-être changer INT pour un de ceux que je viens de proposer.
    En ce qui concerne les bornes, je pourrais te les fournir sur demande.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/07/2014, 16h39
  2. [SQL] Limiter la saisie dans une table
    Par dolphi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/09/2005, 11h43
  3. Espace dans des tables
    Par fgiuliano dans le forum Langage SQL
    Réponses: 15
    Dernier message: 13/07/2005, 09h15
  4. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23
  5. limiter la saisie dans un edit à des réels!!!
    Par shout dans le forum Windows
    Réponses: 10
    Dernier message: 21/06/2004, 16h20

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