Bonjour,
mon petit site tourne très bien. Mes pages php dialoguent à merveille avec ma base MySql et tout va bien dans le meilleur des mondes. Cependant, je dois régulièrement optimiser deux de mes tables a cause de quelques octets perdus.
Comment savoir à quoi est due cette perte?
Des requêtes pas propres? Il y a une généralité d'erreur de programmation qui cause cette perte?

Merci pour vos éclaircissements.

3 réponses


Si je ne dis pas de bétise, c'est quand on efface des lignes dans une table mySQL que l'on perd quelques octets.
Tu peux lancer de temps en temps une optimisation des tables pour récupérer ces octets.

Alors il me semble que ce que je vais dire n'est pas une connerie. (Je crois :) )

Quand tu formate une clé USB par exemple (je donne cet exemple puisque tout le monde l'a déjà fait), tu peux choisir la "Taille d'unité d'allocation" :

Ca correspond en gros, à la taille minimale que va prendre un fichier.

Je m'explique. Sur le screen, il y a marqué 4096 octets. Donc par exemple si tu créer un fichier de 3000 octets, puis un fichier de 2000, tu auras au final 2*4096 octets de pris.
Imagine 4096 octets comme l'étage d'une bibliothèque (donc la bibliothèque est au final un ensemble de 4096 octets, un par étage). Chaque livre est un fichier mais tu ne peux placer qu'un seul livre par étage. Donc plus le livre est petit, plus tu as de la place perdu, par contre, un livre qui prend toute la largeur, pas de soucis.

Second exemple, fichier de 5000 octets. Ce fichier prendra aussi 2*4096 octets puisqu'il ne loge pas sur le premier, donc il lui en faut deux.

C'est le même principe pour une base de données, puisque ce sont au final, des fichiers écrits sur un disque dur. Le fait d'optimiser, vérifie si le disque ne peux pas déplacer, sur quelques octets qui ont été supprimés ...

Je n'ai peut être pas toute l'explication, mais je pense que le fond est là.

En espérant ne pas avoir dit n'importe quoi ...

Hexa
Auteur

Salut,
je ne sais pas si c'est du n'importe quoi, mais en tout cas tu as le mérite de m'avoir répondu.
Ta réponse me laisse tout de même pentois car je pense que la place octroyée aux données varie pile poil à la taille de ces données-là!

D'autres avis?