Pertes SQL

Répondre
Keika
le 23/04/2007 à 10:43
Keika
Salut,

je viens de decouvrir que j'ai des pertes SQL... (bon je ne fais pas de jeux de mots mais je me retiens!)

Comment est-ce possibile ? J'ai aussi remarque que avec un simpe OPTIMIZE on retablit le probleme.
Est-il possible d'afficher ca sur le site ? Genre dans la partie admin je verifie si y'a de la perte et je lance un ch'tit OPTIMIZE pour arranger ca. Cependant je pense que la meilleur solution reste d'eviter ces pertes... Mais je ne comprends pas d'ou elles viennent et je n'ai aps trouver ou me l'expliquer dans PHPMyAdmin...

Merci d'avance

K.
Le PHP --> C'est dur !
LA GLOBULE
le 23/04/2007 à 11:07
LA GLOBULE
Pour comprendre ce que sont ces pertes, il suffit de lire la doc MySQL.

En gros, MySQL est très con dans l'organisation de ses données sur le file system.
Le problème arrive lorsque tu fais beaucoup d'insert / delete sur une table.
Car en cas de delete, MySQL efface la donnée qui est (peut être) située sur plusieurs clusters.
Et quand derrière tu fais un insert, MySQL cherche le premier cluster ou il y'a de la place, et il insère ta donnée. Si il y'a de la place pour toute ta donnée, tout va bien. Mais si ta donnée est trop grosse, ben il insère quand meme ce fragment, et il part à la recherche du prochain cluster libre pour continuer à écrire le reste de ta donnée.

Bref, au final, ca fait comme windows : ca fragmente mal (car pour selectionner une donnée, il doit chercher un peu partout sur le disque).

Un optimize permet de résoudre cela car il réorganise tout pour faire en sorte que les données (qui avant étaient à divers endroits du disque) se retrouvent bien les unes à la suite des autres. Et par conséquent, un Optimize accélère tes select.

Voilou.

Mais je te conseille de lire la doc MySQL, il y'a plein de truc intéressant à lire sur ce genre de truc.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours