MySQL Que signifie « frais généraux » signifie, ce qui est mauvais à ce sujet, et comment y remédier?
Question
question simple, mais sa me poursuivent pendant un certain temps maintenant ....
ce qui est "frais généraux" dans MySQL, et dois-je être inquiet?
ne cliquant sur "OPTIMIZE" fixer pour de vrai?
La solution
Il semble que la surcharge est temporaire diskspace la base de données utilisée pour exécuter certaines des requêtes, de sorte que vous ne devriez vous inquiéter si cela devient très élevé.
Vous pouvez comparer « Optimisation de la table » avec le Défragmentation de votre disque dur.
Je cite:
Chaque base de données, au fil du temps, exigent une certaine forme d'entretien le maintenir à un optimal performances niveau. Purge lignes supprimées, resequencing, compression, gestion chemins d'index, défragmenter, etc. est ce qui est connu sous le nom OPTIMISATION dans mysql et d'autres termes dans d'autres bases de données. Par exemple, IBM DB2 / 400 appelle REORGANISER MEMBRE PHYSIQUES FICHIER.
Il est un peu comme changer l'huile dans votre voiture ou obtenir un tune-up. Tu peux pensez que vous n'avez pas vraiment, mais par faire de sorte que votre voiture fonctionne beaucoup mieux, vous obtenez une meilleure consommation de gaz, etc. Une voiture qui obtient beaucoup de kilométrage exige tune-up le plus souvent. Une base de données obtient une utilisation intensive exige la même chose. Si vous faites beaucoup de UPDATE et / ou les opérations de suppression, et surtout si vos tables ont une longueur variable colonnes (VARCHAR, TEXT, etc.), vous avez besoin de garder « er réglé.
Autres conseils
Si vous parlez de la chose qui phpMyAdmin
appels overhead
, il est la taille réelle d'une table datafile par rapport à la taille idéale du même fichier de données (comme quand juste restauré de la sauvegarde).
Pour des raisons de performance, MySQL
ne compacte pas les fichiers de données après la suppression ou les lignes de mises à jour.
Ce overhead
est mauvais pour la numérisation de table, i. e. lorsque votre requête a besoin de fonctionner sur toutes les valeurs de la table, il faudra regarder plus d'espace vide.
Vous pouvez vous débarrasser de l'overhead
en exécutant OPTIMIZE TABLE
qui compacter votre table et index.
Overhead est Data_free d'une table, qui est Le nombre d'octets alloués mais non utilisés. Nous pouvons le trouver par commande SQL AFFICHER TABLE STATUS . Il est l'espace libre dans la taille allouée à votre table.
OPTIMIZE table peut être très problématique. Par exemple, si la table est utilisée en grande partie sur un site.
http://dev.mysql.com/doc/ refman / 5.1 / fr / optimize-table.html
Après la suppression d'une grande partie d'une table MyISAM ou archivez ou faire beaucoup de changements à une table MyISAM ou ARCHIVE avec des lignes de longueur variable (tables qui ont VARCHAR, BLOB ou colonnes de texte). lignes supprimées sont maintenues dans une liste, et les opérations INSERT réutilisent anciennes positions de ligne. <
Je crois que je l'ai confirmé ce comportement. Et ce serait certainement très utile en effet.