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