optimisation BDD Mysql

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

comparef
WRInaute passionné
WRInaute passionné
 
Messages: 504
Inscription: Mar Avr 05, 2005 18:00

optimisation BDD Mysql

Message le Sam Aoû 27, 2005 15:59

Bonjour a tous,

Dans une base de donée mySQL, dans les caracteristiques de chaque table on peut voir ceci :

Espace utilisé :
Type Espace
Données 112 Octets
Index 2 048 Octets
Perte 68 Octets
effectif 2 092 Octets
Total 2 160 Octets
[Optimiser la table]

Lorsqu'on clique sur [Optimiser la table], apparament cela suprime les pertes.
Savez-vous ce qui se passe exactement lorsqu'on clique sur [Optimiser la table] ? (que action est réalisé ?)

Merci pour vos reponses
Dernière édition par comparef le Dim Aoû 28, 2005 11:27, édité 2 fois.

Fabrice99
Nouveau WRInaute
 
Messages: 13
Inscription: Mar Mai 17, 2005 10:48

Optimize

Message le Sam Aoû 27, 2005 16:35

Bonjour,

C'est la commande optimize qui est utilisée.
Elle permet de défragmenter la base de données et de récuperer de l'espace non utilisé après effacement ou modification d'enregistrements.

Vous trouverez plus d'informations sur le site officiel de Mysql :
http://dev.mysql.com/doc/mysql/fr/optimize-table.html

comparef
WRInaute passionné
WRInaute passionné
 
Messages: 504
Inscription: Mar Avr 05, 2005 18:00

Message le Sam Aoû 27, 2005 16:51

ok, merci pour ta réponse


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Message le Sam Aoû 27, 2005 19:35

Quand tu as une grosse base de donnée très utilisée (ajout d'enregistrement, delete etc...) utilise cette commande régulièrement pour que les accès soient plus rapide et récuperer l'espace perdu...


doic
WRInaute accro
WRInaute accro
 
Messages: 1124
Inscription: Ven Nov 07, 2003 17:33

Message le Sam Aoû 27, 2005 22:38

Moi j'en profite pour demander si quelqu'un connait un moyen de toujours donner le bon type à un champ MySQL en fonction de ce qu'il va contenir...
Ex: Text, VarChar, Int, Bigint etc... et aussi évidemment comment calculer les tailles de ces champs?

Le truc qui serait génial, ce serait un script qui "crawle" ma base et me génère un rapport avec les modifications à entreprendre...

Merci ;-)


JeunZ
WRInaute accro
WRInaute accro
 
Messages: 5301
Inscription: Mer Fév 18, 2004 12:41

Message le Sam Aoû 27, 2005 22:44

Moi je le fait sans script précis... Je veux dire c'est pas compliqué.

Quand tu fais la structure de ta base de donnée tu sais par exemple que ca va etre un int qui prendra soit la valeur 0 ou 1 tu lui fou alors la taille 1, si c'est un int qui s'autoincrémente tu réflechis à combien il pourra y avoir en gros d'enregistrement dans X temps...

Pour les varchar ba il doit y avoir des tailles standart genre pour les emails, adresses etc...

Un code postale c'est une taille de 5 par exemple etc...

Pas besoin de script je crois.


Patrice A.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Message le Dim Aoû 28, 2005 0:02

C'est très très simple.
Une fois ta base arrivée à une taille "de croisière" (c'est-à-dire qu'elle contient assez de données pour qu'on puisse se faire une idée de l'état optimum des types des champs), tu passes par phpMyadmin, et tu utilises la fonction Suggérer des optimisations pour cette table qui va faire exactement ce que tu demandes : analyser la table et t'informer des meilleurs choix.


doic
WRInaute accro
WRInaute accro
 
Messages: 1124
Inscription: Ven Nov 07, 2003 17:33

Message le Dim Aoû 28, 2005 0:02

OK, et comment savoir si on prend un varchar ou un text? etc?

Vell
WRInaute impliqué
WRInaute impliqué
 
Messages: 282
Inscription: Ven Aoû 05, 2005 0:09

Message le Dim Aoû 28, 2005 0:04

Justement pour les très grosses bases ça devient intéressant au niveau du temps d'execution qui pourrait changer selon un char(1) et un int(1).
De quelques centièmes certes, mais multipliés par des milliers voire millions de fois, ça fait une sacré perte de temps.

Donc oui, un script pourrait être utile. Ou alors regarder dans la doc mysql ce qui est le plus adapté, et les commentaires aussi. Y'a des tas de bons trucs à prendre dans les com... (et des mauvais aussi, mais c'est assez rare)


Patrice A.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Message le Dim Aoû 28, 2005 0:12

Vell a écrit:Donc oui, un script pourrait être utile.

doic a écrit:OK, et comment savoir si on prend un varchar ou un text? etc?

j'ai vraiment l'impression d'avoir parlé dans le vide là... rassurez-moi vous avez lu ce que j'ai posté au-dessus hein ?


doic
WRInaute accro
WRInaute accro
 
Messages: 1124
Inscription: Ven Nov 07, 2003 17:33

Message le Dim Aoû 28, 2005 0:21

Et non Dj!
Je viens de capter ton message, on a posté en même temps!!
Je fonce sur PhpMyAdmin pour voir cette fonction magique!!!


doic
WRInaute accro
WRInaute accro
 
Messages: 1124
Inscription: Ven Nov 07, 2003 17:33

Message le Dim Aoû 28, 2005 0:23

C'est GENIALEUH!!!

Je m'occupe de ça le plus vite possible et je regarde si ça me réduit le poids de ma base de beaucoup ou pas...

Merci Dj_Apx!!


Patrice A.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Message le Dim Aoû 28, 2005 0:27

Oh, pour le poids, tu ne gagneras rien, ou pas grand-chose. Mais la rapidité peut vraiment être améliorée par cette analyse.
Attention cependant à n'utiliser le type ENUM que si on est vraiment sûr que les valeurs du champ appartiennent à un ensemble discret, fini, et connu.


doic
WRInaute accro
WRInaute accro
 
Messages: 1124
Inscription: Ven Nov 07, 2003 17:33

Message le Dim Aoû 28, 2005 0:41

J'ai pas mal de champs qui fonctionnent en binaire (NULL ou 1) et je pense que ce type de champ devrait correspondre, non? en tout cas c'est ce que me propose PhpMyAdmin...

comparef
WRInaute passionné
WRInaute passionné
 
Messages: 504
Inscription: Mar Avr 05, 2005 18:00

Message le Dim Aoû 28, 2005 7:14

lorsque je créé une table, le prevoi toujours 2 champs en plus (que je nome par exemple "reserve1" et "reserve2".
Car il est fréquent que je soit obligé de rajouter des champs apres coup.
cela m'evite donc de reprogrammer mes requetes lorsque je rajoute un ou 2 champs.

Au niveau de l'optimisation (vitesse d'execution et poids) cette technique est-elle à proscrire ?

optimisation BDD Mysql

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: vitalizo et 0 invités