490 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
• Wenn die letzte Instanz einer Tabelle geschlossen wird (wegen eines FLUSH oder weil
es nicht mehr genug Platz im Tabellen-Cache gibt), wird der Z¨ahler heruntergez¨ahlt,
wenn die Tabelle zu irgend einem Zeitpunkt aktualisiert wurde.
• Wenn Sie eine Tabelle reparieren oder pr¨ufen und sie in Ordnung ist, wird der Z¨ahler
auf 0 zur¨uckgesetzt.
• Um Probleme zu vermeiden, die durch Interaktion mit anderen Prozessen entstehen,
die vielleicht eine Pr¨ufung der Tabelle durchf¨uhren, wird der Z¨ahler beim Schließen
nicht heruntergez¨ahlt, wenn er 0 war.
Mit anderen Worten kann der Z¨ahler nur in folgenden F¨allen nicht mehr synchron sein:
• Die MyISAM-Tabellen werden ohne LOCK und FLUSH TABLES kopiert.
• MySQL ist zwischen einer Aktualisierung und dem endg¨ultigen Schließen a/jointfilesconvert/293675/bgest¨urzt.
(Beachten Sie, dass die Tabelle trotzdem in Ordnung sein kann, weil MySQL stets f¨ur
alles zwischen jedem Statement Schreibvorg¨ange durchf¨uhrt.
• Jemand hat myisamchk --repair oder myisamchk --update-state auf eine Tabelle
ausgef¨uhrt, die durch mysqld in Benutzung war.
• Viele mysqld-Server benutzen die Tabelle und einer davon hat REPAIR oder CHECK der
Tabelle ausgef¨uhrt, w¨ahrend sie durch einen anderen Server in Benutzung war. Hierbei
kann CHECK sicher ausgef¨uhrt werden (selbst wenn Sie Warnungen von anderen Servern
erhalten werden), aber REPAIR sollte vermieden werden, weil es momentan die Daten-
Datei durch eine neue ersetzt, was anderen Servern nicht signalisiert wird.
8.2 MERGE-Tabellen
MERGE-Tabellen sind neu seit MySQL-Version 3.23.25. Der Code ist noch Gamma, sollte
aber ausreichend stabil sein.
Eine MERGE-Tabelle (auch bekannt als MRG_MyISAM-Tabelle) ist eine Sammlung identischer
MyISAM-Tabellen, die wie eine benutzt werden k¨onnen. Sie k¨onnen auf dieser Sammlung von
Tabellen nur SELECT, DELETE und UPDATE ausf¨uhren. Wenn Sie eine MERGE-Tabelle l¨oschen
(DROP), l¨oschen Sie nur die MERGE-Sp ezifikation.
Beachten Sie, dass DELETE FROM merge_tabelle ohne WHERE nur das Mapping f¨ur die
Tabelle l¨oscht, nicht alles in den gemappten Tabellen. (Geplant ist, das in Version 4.1
zu beheben.)
Mit identischen Tabellen ist gemeint, dass alle Tabellen mit identischen Spalten- und
Schl¨usselinformationen erzeugt wurden. Sie k¨onnen kein MERGE auf Tabellen ausf¨uhren,
deren Spalten unterschiedlich komprimiert sind, nicht genau dieselben Spalten oder die
Schl¨ussel in unterschiedlicher Reihenfolge haben. Einige der Tabellen k¨onnen jedoch mit
myisampack komprimiert sein. Siehe Abschnitt 5.7.4 [myisampack], Seite 272.
Wenn Sie eine MERGE-Tabelle erzeugen, erhalten Sie eine .frm-Tabellendefinitionsdatei und
eine .MRG-Tabellenlistendatei. Die .MRG enth¨alt lediglich eine Liste der Index-Dateien (.MYI-
Dateien), die wie eine benutzt werden sollen. Alle benutzten Tabellen m¨ussen in derselben
Datenbank wie die MERGE-Tab elle selbst sein.
Momentan b en¨otigen Sie SELECT-, UPDATE- und DELETE-Berechtigungen f¨ur die Tab ellen,
die Sie auf eine MERGE-Tabelle mappen.
MERGE-Tabellen k¨onnen bei der L¨osung folgender Probleme helfen:
Kommentare zu diesen Handbüchern