Taille des tables MySQL


bidulemachin
WRInaute discret
WRInaute discret
 
Messages: 102
Inscription: 5 Oct 2007

Taille des tables MySQL

Message le Lun Sep 15, 2008 19:15

Bonsoir à tous,

Voila mon problème :
Je suis entrain d'optimiser ma base de données pour la rendre plus légère et plus rapide. En parcourant mes tables, je suis tombé sur une table qui contient 12 enregistrements avec 3 champs et la table fait 1,6Mo, rien que ça. Pour info, je n'ai pas créé cette table, elle fait partie du forum punBB. Donc voila ma question est : Quels sont les bons plans pour réduire la taille d'une table, et comment ca se fait que 12 enregistrements engendrent 1,6 Mo ?

Merci d'avance pour vos réponses


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Lun Sep 15, 2008 19:41

Hello,

1) il y a quoi dans ces 12 enregistrements ? S'il y a 100Ko de données pour chaque ça va vite...
2) il s'agit de quel type de table InnoDB ? MyISAM ? Memory ?
3) phpmyadmin indique un format "fixe" ou "dynamique" ?
4) phpmyadmin indique quelle taille en "pertes" ? Si > 0, tu peux tenter un "optimize table XXXX"


bidulemachin
WRInaute discret
WRInaute discret
 
Messages: 102
Inscription: 5 Oct 2007

Message le Lun Sep 15, 2008 19:56

Alors voilà la structure de la table :

user_id int(10) UNSIGNEDTexte entier
ident varchar(200) latin1_swedish_ci
logged int(10) UNSIGNED
idle tinyint(1)

Alors en gros ca recense les utilisateurs en ligne donc y a un user_id un ident qui est une IP ou un PSEUDO, un logged qui est un timestamp et un idle qui est a 1 ou a 0.

Données 1 427,0 Kio
Index 211,4 Kio
Perte 27 300 o
effectif 1 611,7 Kio
Total 1 638,4 Kio

Pour ce qui est du type de table c est MEMORY, et il est en format FIXE


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18812
Inscription: 8 Aoû 2004

Message le Lun Sep 22, 2008 13:28

c'est à cause des pertes (à force de supprimer les enregistrement des users plus en ligne).
Il faut donc faire un OPTIMIZE TABLE régulièrement


Bool
WRInaute passionné
WRInaute passionné
 
Messages: 1290
Inscription: 26 Fév 2004

Message le Lun Sep 22, 2008 14:25

Il me semble que les tables "MEMORY" ne supportent pas les OPTIMIZE justement.

En tous cas ces tables MEMORY sont forcément en "fixe", c'est à dire qu'un champ varchar(200) comme tu as là occupe toujours 201 octets, même s'ils ne contiennent que 4 caractères... c'est pourquoi si on peut il vaut mieux éviter d'utiliser de tels champs pour ce type de table.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


cron