In MySQL was bedeutet „Overhead“ bedeuten, was es schlecht ist, und wie man es beheben?
Frage
einfache Frage, aber seine worden nörgelnden mich für eine Weile jetzt ....
Was ist "Overhead" in MySQL, und sollte ich besorgt sein?
"Optimierung der Tabelle" nicht klicken reparieren es für real?
Lösung
Es scheint, dass der Overhead temporärer Speicherplatz ist, dass die Datenbank verwendet, um einige der Abfragen ausführen kann, so sollten Sie nur Sorgen machen, wenn dies wirklich hoch wird.
Sie können vergleichen ‚Optimierung der Tabelle‘ mit dem Defragmentieren Ihrer Festplatte.
Ich zitiere:
Jede Datenbank wird im Laufe der Zeit, erfordern eine gewisse Form von Wartung halten Sie es in einer optimal Leistung Niveau. Bereinigen gelöschten Zeilen, Resequenzierung, Stauchen, Verwalten Indexpfade, Defragmentieren etc. was als OPTIMIZATION in mysql bekannt und andere Begriffe in den anderen Datenbanken. Zum Beispiel IBM DB2 / 400-Anrufe es REORGANISIEREN physische Datei MEMBER.
Es ist ein bisschen wie Ölwechsel in Ihr Auto oder ein Tune-up zu bekommen. Du könntest Denken Sie wirklich nicht haben, aber durch Damit Sie Ihr Auto läuft viel besser, Sie erhalten eine bessere Benzinverbrauch, etc. Ein Auto das bringt viele Kilometer erfordert Tune-Ups häufiger. Eine Datenbank, die wird die starke Nutzung der gleichen erfordert. Wenn Sie sind viel UPDATE tun und / oder DELETE-Operationen, und vor allem, wenn Ihre Tabellen mit variabler Länge Spalten (VARCHAR, TEXT usw.), müssen Sie zu halten ‚er getunt.
Andere Tipps
Wenn Sie über die Sache sprechen, die Anrufe phpMyAdmin
overhead
, dann ist es tatsächliche Größe einer Tabelle Daten-Datei in Bezug auf die ideale Größe der gleichen Daten-Datei (als ob, wenn nur aus einer Sicherung gestellt).
Aus Leistungsgründen MySQL
compact nicht die Datendateien, nachdem sie löscht oder Updates Zeilen.
Dieses overhead
ist schlecht für die Table-Scan, i. e. wenn Ihre Abfrage alle Tabellenwerte zu überfahren muss, muss es bei mehr leeren Raum suchen.
Sie der overhead
erhalten können, indem Sie OPTIMIZE TABLE
befreien, die Tabelle und Indizes komprimieren wird.
Overhead ist Data_free einer Tabelle, das heißt Die Anzahl der zugeteilten, aber nicht genutzten Bytes. Wir können es durch SQL-Befehl finden Sie SHOW TABLE STATUS . Es ist der freie Raum in zugewiesene Größe für Ihre Tabelle.
Optimieren Tabelle kann sehr problematisch sein. Zum Beispiel, wenn der Tisch stark auf einer Website verwendet.
http://dev.mysql.com/doc/ refman / 5.1 / de / optimize-table.html
Nach einem großen Teil eines MyISAM oder ARCHIV Tabelle zu löschen, oder machen viele Änderungen an eine MyISAM oder ARCHIV Tabelle mit Zeilen variabler Länge (Tabellen, die VARCHAR, VARBINARY, BLOB oder TEXT Spalten). Gelöschte Zeilen werden in einer verknüpften Liste und nachfolgende INSERT-Operationen verwenden die alten Zeilenpositionen gehalten. <
Ich glaube, ich dieses Verhalten bestätigt haben. Und es wäre sicherlich in der Tat sehr nützlich sein.