486 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
8.1.1 F¨ur Schl¨ussel ben¨otigter Speicherplatz
MySQL unterst¨utzt unterschiedliche Index-Typen, doch der normale Typ ist ISAM oder
MyISAM. Diese benutzen einen B-Baum-Index, und Sie k¨onnen die Gr¨oße der Index-Datei
grob als (schluessel_laenge+4)/0.67 kalkuliert, summiert ¨uber alle Schl¨ussel. (Das ist
der schlechteste Fall, bei dem alle Schl¨ussel in sortierter Reihenfolge eingeordnet werden
und es keinerlei Schl¨ussel-Komprimierung gibt.)
Zeichenketten-Indexe werden Leerzeichen-komprimiert. Wenn der erste Index-Teil eine Ze-
ichenkette ist, wird er zus¨atzlich Pr¨afix-komprimiert. Leerzeichen-Kompression macht die
Index-Datei kleiner als in den obigen Zahlen dargestellt, wenn die Zeichenkettenspalte viele
Leerzeichen am Ende hat oder eine VARCHAR-Spalte ist, die nicht immer in voller L¨ange
genutzt wird. Pr¨afix-Kompression wird bei Schl¨usseln benutzt, die mit einer Zeichenkette
beginnen. Pr¨afix-Kompression hilft, wenn es viele Zeichenketten mit identischem Pr¨afix
gibt.
Bei MyISAM-Tabellen k¨onnen Sie auch Zahlen Pr¨afix-komprimieren, indem Sie beim Erzeu-
gen der Tabelle PACK_KEYS=1 angeben. Das hilft, wenn Sie viele Ganzzahl-Schl¨ussel mit
identischem Pr¨afix haben, wenn die Zahlen mit dem hohen Byte zuerst gespeichert werden.
8.1.2 MyISAM-Tabellenformate
MyISAM unterst¨utzt 3 verschiedene Tabellentypen. Zwei von ihnen werden automatisch
gew¨ahlt, abh¨angig vom Spaltentyp, den Sie benutzen. Der dritte, komprimierte Tabellen,
kann nur mit dem myisampack-Dienstprogramm erzeugt werden.
Wenn Sie eine Tabelle erzeugen (CREATE) oder ¨andern (ALTER), k¨onnen Sie bei Tabellen, die
kein BLOB enthalten, ein dynamisches (DYNAMIC) oder festes (FIXED) Tabellenformat mit der
ROW_FORMAT=#-Tab ellenoption erzwingen. Zuk¨unftig werden Sie in der Lage sein, Tabellen
zu komprimieren / dekomprimieren, indem Sie ROW_FORMAT=compressed | default f¨ur
ALTER TABLE angeben. Siehe Abschnitt 7.5.3 [CREATE TABLE], Seite 456.
8.1.2.1 Kennzeichen statischer (Festl¨angen-) Tabellen
Das ist das vorgabem¨aßige Format. Es wird benutzt, wenn die Tabelle keine VARCHAR-,
BLOB- oder TEXT-Spalten enth¨alt.
Dieses Format ist das einfachste und sicherste Format. Es ist auch das schnellste der
Formate auf Platte. Die Geschwindigkeit ergibt sich aus der einfachen Weise, wie Daten
auf der Platte gefunden werden k¨onnen. Wenn man etwas mit einem Index und statischem
Format nachschl¨agt, ist es sehr einfach. Man multipliziert einfach die Zeilennummer mit
der Zeilenl¨ange.
Wenn eine Tabelle gescannt wird, ist es ausserdem sehr einfach, mit jedem Plattenzugriff
eine konstante Anzahl von Datens¨atzen zu lesen.
Die Sicherheit zeigt sich, wenn Ihr Computer beim Schreiben in eine MyISAM-Datei fester
L¨ange abst¨urzt. In diesem Fall kann myisamchk leicht herausfinden, wo jede Zeile anf¨angt
und aufh¨ort. Daher kann es ¨ublicherweise alle Datens¨atze mit Ausnahme desjenigen, in
den nur teilweise geschrieben wurde, wieder herstellen. Beachten Sie, dass in MySQL alle
Indexe in jedem Fall wiederhergestellt werden k¨onnen:
Kommentare zu diesen Handbüchern