488 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
+ (anzahl_der_zeichenketten_spalten)
+ komprimierte_groesse_numerischer_spalten
+ laenge_von_zeichenketten
+ (anzahl_von_NULL_spalten + 7) / 8
F¨ur jeden Link kommen 6 Bytes hinzu. Ein dynamischer Datensatz wird immer
dann verkn¨upft (linked), wenn eine Aktualisierung eine Vergr¨oßerung des Datensatzes
bewirkt. Jede neue Verkn¨upfung hat mindestens 20 Bytes, so dass die n¨achste
Vergr¨oßerung wahrscheinlich in dieselbe Verkn¨upfung passt. Wenn nicht, entsteht eine
weitere Verkn¨upfung. Sie k¨onnen mit myisamchk -ed pr¨ufen, wie viele Verkn¨upfungen
es gibt. Alle Verkn¨upfungen k¨onnen mit myisamchk -r entfernt werden.
8.1.2.3 Kennzeichen komprimierter Tabellen
Das ist ein Nur-Lese-Typ, der mit dem optionalen myisampack-Dienstprogramm (pack_
isam f¨ur ISAM-Tabellen) erzeugt wird:
• All MySQL-Distributionen, selbst diejenigen, die es vor der GPL-Version von MySQL
gab, k¨onnen Tabellen lesen, die mit myisampack komprimiert wurden.
• Komprimierte Tabellen ben¨otigen viel weniger Speicherplatz. Das minimiert Platten-
zugriffe, was sehr nett ist, wenn Sie langsame Platten benutzen (wie CD-ROMs).
• Jeder Datensatz wird separat komprimiert (sehr geringer Zugriffs-Overhead). Der
Header f¨ur einen Datensatz hat eine feste L¨ange (1 bis 3 Bytes), abh¨angig vom gr¨oßten
Datensatz in der Tabelle. Jede Spalte wird unterschiedlich komprimiert. Einige Kom-
pressionstypen sind:
− F¨ur jede Spalte gibt es ¨ublicherweise eine unterschiedliche Huffman-Tabelle.
− Komprimierung von Leerzeichen am Ende.
− Komprimierung von Leerzeichen am Anfang.
− Zahlen mit dem Wert 0 werden mit 1 Bit gespeichert.
− Wenn Werte in einer Ganzzahl-Spalte einen kleinen Wertebereich haben, wird die
Spalte mit dem kleinsten m¨oglichen Typ gespeichert. Eine BIGINT-Spalte (8 Bytes)
kann beispielsweise als TINYINT-Spalte (1 Byte) gespeichert werden, wenn sich alle
Werte im Bereich von 0 bis 255 befinden.
− Wenn eine Spalte nur einen kleinen Satz m¨oglicher Werte besitzt, wird der Spal-
tentyp zu ENUM umgewandelt.
− Eine Spalte kann auch eine Kombination der obigen Komprimierungen benutzen.
• Kann Datens¨atze fester oder dynamischer L¨ange handhaben, aber nicht BLOB- oder
TEXT-Spalten.
• Kann mit myisamchk dekomprimiert werden.
8.1.3 MyISAM-Tabellenprobleme
Das Dateiformat, das MySQL benutzt, um Daten zu speichern, wurde ausgiebig getestet,
aber es gibt immer Umst¨ande, die dazu f¨uhren k¨onnen, dass Datenbanktabellen besch¨adigt
werden.
Kommentare zu diesen Handbüchern