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?
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?
Réponses:
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
appelle overhead
, 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écutant OPTIMIZE TABLE
ce qui compactera votre table et vos index.
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.
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
Après avoir supprimé une grande partie d'une table MyISAM ou ARCHIVE, ou avoir apporté de nombreuses modifications à une table MyISAM ou ARCHIVE avec des lignes de longueur variable (tables qui ont des colonnes VARCHAR, VARBINARY, BLOB ou TEXT). Les lignes supprimées sont conservées dans une liste liée et les opérations INSERT suivantes réutilisent les anciennes positions de ligne. <
Je crois avoir confirmé ce comportement. Et ce serait certainement très utile.