PythonQ 240-8XX Manual de usuario Pagina 546

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 545
Kapitel 8: MySQL-Tab ellentypen 525
F¨ur die Wiederherstellung nach Abst¨urzen sollten Sie Datensicherungen der Tabellen
plus das Bin¨ar-Log von MySQL benutzen. Siehe Abschnitt 5.4.1 [Backup], Seite 217.
Achtung: Wenn Sie alte Log-Dateien oschen, die in Benutzung sind, ist BDB nicht in
der Lage, Wiederherstellungen durchzuf¨uhren, und Sie onnten Daten verlieren, wenn
etwas schief geht.
MySQL erfordert einen PRIMARY KEY in jeder BDB-Tabelle, um auf vorher gelesene
Zeilen verweisen zu onnen. Wenn Sie keine Prim¨arschl¨ussel anlegen, erzeugt MySQL
einen versteckten PRIMARY KEY. Der versteckte Schl¨ussel hat eine ange von 5 Bytes
und wird bei jedem Einf¨ugeversuch um 1 hochgez¨ahlt.
Wenn alle Spalten, auf die Sie in einer BDB-Tabelle zugreifen, Teil desselben Indexes
oder Teil des Prim¨arschl¨ussels sind, kann MySQL die Anfrage ausf¨uhren, ohne auf die
tats¨achliche Zeile zugreifen zu m¨ussen. Bei einer MyISAM-Tabelle gilt das nur, wenn die
Spalten Teil desselben Indexes sind.
Der PRIMARY KEY ist schneller als jeder andere Schl¨ussel, weil PRIMARY KEY zusammen
mit den Zeilendaten gespeichert wird. Weil die anderen Schl ¨ussel als Schl¨usseldaten
plus PRIMARY KEY gespeichert werden, ist es wichtig, den PRIMARY KEY so kurz wie
oglich zu halten, um Plattenplatz zu sparen und bessere Geschwindigkeit zu erzielen.
LOCK TABLES funktioniert bei BDB-Tabellen wie bei anderen Tabellen. Wenn Sie LOCK
TABLE nicht benutzen, f¨uhrt MySQL einer interne mehrfache Schreibsperre auf die
Tabelle aus, um sicherzustellen, dass die Tabelle korrekt gesperrt ist, wenn ein anderer
Thread eine Tabellensperre ausf¨uhrt.
Internes Sperren in BDB-Tab ellen wird auf Seitenebene durchgef¨uhrt.
SELECT COUNT(*) FROM tabelle ist langsam, weil BDB-Tabellen keinen ahler ur die
Anzahl der Zeilen in der Tabelle unterhalten.
Scannen ist langsamer als bei MyISAM-Tabellen, weil Daten in BDB-Tabellen in B-
aumen und nicht in separaten Daten-Dateien gespeichert werden.
Die Applikation muss stets darauf vorbereitet sein, alle zu handhaben, bei denen
jegliche
¨
Anderung einer BDB-Tabelle zu einem automatischen Rollback f¨uhren kann
und jegliches Lesen fehlschlagen kann, weil ein Blockierungsfehler auftritt.
Schl¨ussel werden nicht auf vorherige Schl¨ussel komprimiert, wie das bei ISAM- und
MyISAM-Tabellen der Fall ist. Mit anderen Worten ben¨otigt die Schl¨usselinformation
etwas mehr Platz bei BDB-Tabellen im Vergleich zu MyISAM-Tabellen, die nicht PACK_
KEYS=0 benutzen.
Oft gibt es ocher in der BDB-Tabelle, damit Sie neue Zeilen in der Mitte des
Schl¨usselbaums einf¨ugen onnen. Das macht BDB-Tabellen etwas gr¨oßer als
MyISAM-Tabellen.
Der Optimierer muss aherungsweise die Anzahl von Zeilen in der Tabelle kennen.
MySQL ost dieses Problem, indem Einf¨ugeoperationen gez¨ahlt werden, und unterh¨alt
diese in einem separaten Segment in jeder BDB-Tabelle. Wenn Sie nicht viele
DELETE oder ROLLBACK ausf¨uhren, sollte diese Zahl ausreichend genau f¨ur den
MySQL-Optimierer sein. Weil MySQL die Zahl nur beim Schließen speichert, kann
sie falsch sein, wenn MySQL unerwartet stirbt. Das sollte kein schwerer Fehler
sein, selbst wenn die Zahl nicht 100% korrekt ist. Man kann die Anzahl von Zeilen
aktualisieren, indem man ANALYZE TABLE oder OPTIMIZE TABLE ausf¨uhrt. Siehe
Vista de pagina 545
1 2 ... 541 542 543 544 545 546 547 548 549 550 551 ... 767 768

Comentarios a estos manuales

Sin comentarios