PythonQ 240-8XX Manual de usuario Pagina 537

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 536
516 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
dem Aktualisierungs-R¨uckg¨angig-Log nicht verwerfen und das Rollback-Segment onnte zu
Groß werden und Ihren Tabellenplatz (Tablespace) komplett f¨ullen.
Die physikalische Gr¨oße eines R¨uckg¨angig-Log-Datensatzes im Rollback-Segment ist typis-
cherweise kleiner als die entsprechende eingef¨ugte oder aktualisierte Zeile. Sie onnen diese
Informationen benutzen, um den Platzbedarf f¨ur Ihr Rollback-Segment zu berechnen.
In diesem multiversionierten Schema wird eine Zeile nicht unmittelbar physikalisch aus der
Datenbank entfernt, wenn Sie sie mit einem SQL-Statement oschen. Erst wenn InnoDB
den Datensatz des Aktualisierungs-R¨uckg¨angig-Logs oschen kann, der ur das oschen
geschrieben wurde, kann es die entsprechende Zeile und ihre Index-Datens¨atze auch
physikalisch aus der Datenbank entfernen. Diese Entfernungsoperation wird Purge genannt
und ist recht schnell, wobei sie ¨uberschl¨agig dieselbe Zeit ben¨otigt wie das SQL-Statement,
das das oschen ausf¨uhrte.
8.5.11 Tabellen- und Index-Strukturen
MySQL speichert seine Daten-W¨orterbuch-Informationen ¨uber Tabellen in .frm’-Dateien
in den Datenbank-Verzeichnissen. Jedoch hat auch jede Tabelle vom Typ InnoDB ihren
eigenen Eintrag, in InnoDB-internen Daten-W¨orterb¨uchern innerhalb des Tabellenplatzes
(Tablespace). Wenn MySQL eine Tabelle oder Datenbank oscht, muss er sowohl eine
oder mehrere .frm’-Datei(en) als auch die entsprechenden Eintr¨age im InnoDB-Daten-
orterbuch oschen. Das ist der Grund, warum Sie InnoDB-Tabellen nicht einfach zwischen
Datenbanken verschieben onnen, indem Sie die .frm’-Dateien verschieben und warum
DROP DATABASE bei InnoDB-Tabellen in MySQL-Versionen bis 3.23.43 nicht funktionierte.
Jede InnoDB-Tabelle hat einen speziellen Index, der Cluster-Index genannt wird, in dem die
Daten der Zeilen gespeichert sind. Wenn Sie auf Ihre Tabelle einen PRIMARY KEY definieren,
ist der Index des Prim¨arschl¨ussels der Cluster-Index.
Wenn Sie f¨ur Ihre Tabelle keinen Prim¨arschl¨ussel definieren, erzeugt InnoDB intern einen
Cluster-Index, bei dem die Zeilen nach der Zeilen-Kennung (ID) geordnet sind, die InnoDB
Zeilen in einer solchen Tabelle zuweist. Die Zeilen-Kennung ist ein 6 Byte großes Feld, das
monoton erh¨oht wird, wenn neue Zeilen eingef¨ugt werden. Daher liegen nach der Zeilen-
Kennung geordnete Zeile physikalisch in der Einf¨uge-Reihenfolge vor.
Der Zugriff auf eine Zeile ¨uber den Cluster-Index ist schnell, weil die Zeilendaten auf der-
selben Seite sind, auf die die Index-Suche f¨uhrt. In vielen Datenbanken werden die Daten
traditionell auf einer anderen Seite als derjenigen, wo sich der Index-Datensatz befindet,
gespeichert. Wenn die Tabelle Groß ist, spart die Cluster-Index-Architektur im Vergleich
zur traditionellen osung auf Festplatten-Ein- und -Ausgaben.
In InnoDB enthalten die Datens¨atze in Nicht-Cluster-Indexen (die wir auch sekund¨are
Indexe nennen) den Prim¨arschl¨usselwert f¨ur die Zeile. InnoDB benutzt diesen
Prim¨arschl¨usselwert, um vom Cluster-Index aus nach der Zeile zu suchen. Beachten Sie,
dass die sekund¨aren Indexe mehr Platz ben¨otigen, wenn der Prim¨arschl¨ussel lang ist.
8.5.11.1 Physikalische Struktur eines Indexes
Alle Indexe in InnoDB sind B-B¨aume, in denen die Index-Datens¨atze in den Bl¨atter-
Seiten des Baums gespeichert sind. Die vorgabem¨aßige Gr¨oße einer Index-Seite ist 16 KB.
Vista de pagina 536
1 2 ... 532 533 534 535 536 537 538 539 540 541 542 ... 767 768

Comentarios a estos manuales

Sin comentarios