PythonQ 240-8XX Manual de usuario Pagina 508

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 507
Kapitel 8: MySQL-Tab ellentypen 487
Alle CHAR-, NUMERIC- und DECIMAL-Spalten werden mit Leerzeichen auf die Spaltenbre-
ite aufgef¨ullt.
Sehr schnell.
Leicht zu cachen.
Nach einem Absturz leicht zu rekonstruieren, weil sich Datens¨atze an festen Positionen
befinden.
m¨ussen nicht (mit myisamchk) reorganisiert werden, es sei denn, eine riesige Anzahl von
Datens¨atzen wurde gel¨oscht und Sie wollen dem Betriebssystem freien Speicherplatz
zur¨uckgeb en.
Ben¨otigen normalerweise mehr Speicherplatz als dynamische Tabellen.
8.1.2.2 Kennzeichen dynamischer Tabellen
Dieses Format wird benutzt, wenn die Tabelle irgend welche VARCHAR-, BLOB- oder TEXT-
Spalten enth¨alt, oder wenn die Tabelle mit ROW_FORMAT=dynamic erzeugt wurde.
Dieses Format ist etwas komplexer, weil jede Zeile einen Header haben muss, der aussagt,
wie lang sie ist. Ein Datensatz kann ausserdem an mehr als einem Speicherplatz enden,
wenn er bei einer Aktualisierung verl¨angert wird.
Sie onnen OPTIMIZE table oder myisamchk benutzen, um eine Tabelle zu defragmentieren.
Wenn Sie statische Daten haben, auf die Sie oft zugreifen oder die Sie in derselben Tabelle
oft ¨andern, als VARCHAR- oder BLOB-Spalten haben, ist es eine gute Idee, die dynamischen
Spalten in andere Tabellen zu verschieben, einfach um Fragmentierung zu vermeiden:
Alle Zeichenketten-Spalten sind dynamisch (ausser denen mit einer ange kleiner 4).
Jedem Datensatz ist eine Bitmap vorangestellt, die angibt, welche Spalten bei
Zeichenketten-Spalten leer (’’) sind oder 0 bei numerischen Spalten. (Das ist nicht
dasselbe wie Spalten, die NULL-Werte enthalten.) Wenn eine Zeichenketten-Spalte
nach der Entfernung von Leerzeichen am Ende eine ange von 0 hat oder eine
numerische Spalte einen Wert von 0 hat, wird sie in der Bitmap markiert und nicht
auf Platte gespeichert. Nicht leere Zeichenketten werden als ein angen-Byte plus
dem Zeichenketten-Inhalt gespeichert.
Ben¨otigen ¨ublicherweise weniger Plattenplatz als Festl¨angen-Tabellen.
Jeder Datensatz benutzt nur so viel Speicherplatz wie erforderlich. Wenn ein Daten-
satz gr¨oßer wird, wird er in so viele Teile wie erforderlich aufgeteilt. Hierdurch wird
Datensatzfragmentierung hervorgerufen.
Wenn Sie eine Zeile mit Informationen aktualisieren, die die Zeilenl¨ange ¨uberschreiten,
wird die Zeile fragmentiert. In diesem Fall sollten Sie von Zeit zu Zeit myisamchk
-r laufen lassen, um bessere Performance zu erzielen. Benutzen Sie myisamchk -ei
tabellen_name, um einige statistische Informationen zu erhalten.
Sind nach einem Absturz nicht so einfach zu rekonstruieren, weil ein Datensatz in viele
Teile fragmentiert sein und ein Link (Fragment) fehlen kann.
Die erwartete Zeilenl¨ange bei Datens¨atzen dynamischer ange ist:
3
+ (anzahl_der_spalten + 7) / 8
Vista de pagina 507
1 2 ... 503 504 505 506 507 508 509 510 511 512 513 ... 767 768

Comentarios a estos manuales

Sin comentarios