Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2008, 16h05   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 2
Points : 0
Points : 0
Par défaut taille des index

Bonjour,
J'ai un petit problème avec un index sur une table :
Ma base possède 200 Mo de données et 6,5 Go d'index !
J'ai indexé sur cette table un champs date et j'ai une clé primaire qui est un numéro.
Quand j'exporte ma table et que je la réinjecte dans une autre base (sur le même serveur) je n'ai plus que 45 Mo d'Index.
Comment faire pour compresser les index (j'avais déjà fait import export de la table il y a un mois) ou pour les réduire.
D'autres pistes ?
merci
mjauf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 15h25   #2
Invité de passage
 
Inscription : septembre 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 2
Points : 0
Points : 0
j'ai trouvé quelquechose :
il ya une procédure OPTIMIZE table nom_de_la_table qui m'a réduit la taille des index de 6,5 Go à 45 Mo !
Mais mes index continuent à grossir (quelques mégas par jour) alors une solution serait de lancer cette requête tous les jours.
Ma nouvelle question est pourquoi ils continuent d'augmenter, pourquoi OPTIMIZE arrive à les réduire autant et pourquoi MySQL ne le fait pas automatiquement ?
merci
mjauf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 02h03   #3
Invité de passage
 
Urbaniste
Inscription : novembre 2011
Messages : 14
Détails du profil
Informations professionnelles :
Activité : Urbaniste
Secteur : Bâtiment

Informations forums :
Inscription : novembre 2011
Messages : 14
Points : 2
Points : 2
Tiens c'est bien dommage que personne ne t'ai répondu. Si t'es encore inscrit sur le forum et que tu as trouvé la soluce depuis n'hésite pas a faire partager ^^
pkpasutiliserlemail est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/11/2011, 13h46   #4
Membre du Club
 
Inscription : août 2009
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 66
Points : 69
Points : 69
Le phénomène que tu décris est tout à fait normal : cela s'appelle la fragmentation.

Au niveau données, lorsque l'on fait un insert, l'enregistrement vient s'ajouter en fin de table. Quand on fait un delete, l'enregistrement est supprimé et il y a un espace vide non comblé dans le fichier.

Conclusion : plus une table subit des insertions et des suppression, plus elle va prendre dans la place, et ce, même si le nombre d'enregistrements reste constant.

Au niveau des index, c'est peut-être sensiblement le même phénomène.

La commande OPTIMIZE TABLE doit donc être effectuée aussi régulièrement que possible, en tenant compte des contraintes suivantes :
- Le temps de verrouillage de la table. (blocage éventuel des applis)
- Le risque de fragmentation. (Pas besoin d'optimiser une table qui ne se fragmente pas)
- La marge vis-à-vis de l'espace-disque alloué à MySQL.

A mon avis, les meilleures solutions sont mixte :
- Un OPTIMIZE annuel sur toutes les tables de la base.
- Un OPTIMIZE plus régulier sur les tables qui risquent le plus d'être fragmentées.
NicoD. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h34.


 
 
 
 
Partenaires

Hébergement Web