question simple, mais ça me harcèle depuis un moment maintenant ....
qu'est-ce que "overhead" dans MySQL, et devrais-je m'inquiéter?
est-ce que cliquer sur "Optimiser la table" le corrige pour de vrai?
Il semble que la surcharge soit l'espace disque temporaire utilisé par la base de données pour exécuter certaines des requêtes, vous ne devriez donc vous inquiéter que si cela devient vraiment élevé.
Vous pouvez comparer «Optimiser la table» avec la défragmentation de votre disque dur.
Je cite:
Chaque base de données nécessitera, au fil du temps, une forme de maintenance pour la maintenir à un niveau de performance optimal . Purger les lignes supprimées, reséquencer, compresser, gérer les chemins d'index, défragmenter, etc. est ce que l'on appelle OPTIMISATION dans mysql et d'autres termes dans d'autres bases de données. Par exemple, IBM DB2 / 400 l'appelle REORGANIZE PHYSICAL FILE MEMBER.
C'est un peu comme changer l'huile de votre voiture ou faire une mise au point. Vous pensez peut-être que vous n'êtes pas obligé de le faire, mais ce faisant, votre voiture fonctionne beaucoup mieux, vous obtenez une meilleure consommation d'essence, etc. Une voiture qui consomme beaucoup de kilomètres nécessite des mises au point plus souvent. Une base de données très utilisée nécessite la même chose. Si vous faites beaucoup d'opérations UPDATE et / ou DELETE, et surtout si vos tables ont des colonnes de longueur variable (VARCHAR, TEXT, etc.), vous devez rester à jour.
Si vous parlez de la chose qui
phpMyAdmin
appelleoverhead
, c'est la taille réelle d'un fichier de données de table par rapport à la taille idéale du même fichier de données (comme s'il venait d'être restauré à partir d'une sauvegarde).Pour des raisons de performances,
MySQL
ne compacte pas les fichiers de données après avoir supprimé ou mis à jour des lignes.C'est
overhead
mauvais pour l'analyse de table, c'est-à-dire que lorsque votre requête doit s'exécuter sur toutes les valeurs de la table, elle devra regarder plus d'espace vide.Vous pouvez vous en débarrasser
overhead
en exécutantOPTIMIZE TABLE
ce qui compactera votre table et vos index.la source
La surcharge est Data_free d'une table, c'est-à-dire le nombre d'octets alloués mais inutilisés. Nous pouvons le trouver par la commande SQL SHOW TABLE STATUS . Il s'agit de l'espace libre en taille allouée pour votre table.
la source
Optimiser la table peut être très problématique. Par exemple si la table est fortement utilisée sur un site.
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
Je crois avoir confirmé ce comportement. Et ce serait certainement très utile.
la source