Dans MySQL, qu’est-ce que “Overhead” signifie, ce qui ne va pas, et comment le résoudre?

question simple, mais il me harcèle depuis un moment maintenant ….

Qu’est-ce que “overhead” dans MySQL, et devrais-je m’inquiéter?

le fait de cliquer sur “optimiser la table” le corrige-t-il réellement?

    Il semble que la surcharge soit un espace disque temporaire utilisé par la firebase database pour exécuter certaines 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:

    Avec le temps, chaque firebase database nécessitera une certaine forme de maintenance pour restr à 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 l’OPTIMISATION en 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 dans votre voiture ou faire une mise au point. Vous pensez peut-être que vous n’êtes pas obligé de le faire, mais en faisant cela, votre voiture roule beaucoup mieux, vous obtenez une meilleure consommation d’essence, etc. Une firebase database à usage intensif 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 vous tenir à jour.

    Si vous parlez de la chose que phpMyAdmin appelle la overhead , alors 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 si elle venait d’être restaurée à partir d’une sauvegarde).

    Pour des raisons de performances, MySQL ne MySQL pas les fichiers de données après la suppression ou la mise à jour des lignes.

    Cette overhead est mauvaise pour l’parsing des tables, c’est-à-dire que lorsque votre requête doit être exécutée sur toutes les valeurs de la table, elle devra examiner davantage d’espace vide.

    Vous pouvez vous débarrasser de la overhead en exécutant OPTIMIZE TABLE qui compresse votre table et vos index.

    Overhead est Data_free d’une table, c’est-à-dire le nombre d’octets alloués mais non utilisés. Nous pouvons le trouver par la commande SQL SHOW TABLE STATUS . C’est l’espace libre dans la 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 apporté de nombreuses modifications à une table MyISAM ou ARCHIVE avec des lignes de longueur variable (tables ayant des colonnes VARCHAR, VARBINARY, BLOB ou TEXT). Les lignes supprimées sont conservées dans une liste chaîné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.