Die MERGE-Speicher-Engine behandelt eine Gruppe von MyISAM-Tabellen als logische Einheit, sodass wir sie gleichzeitig abfragen können. Jedes Mitglied der MyISAM-Datentabelle, das eine MERGE-Datentabellenstruktur bildet, muss genau dieselbe Tabellenstruktur haben. Die Spalten jeder Mitgliedstabelle müssen mit demselben Namen und Typ in derselben Reihenfolge definiert werden, und die Indizes müssen ebenfalls in derselben Reihenfolge und auf dieselbe Weise definiert werden. Angenommen, Sie haben mehrere Protokolldatentabellen, von denen jede Protokolleinträge für jedes Jahr der letzten Jahre enthält. Ihre Definitionen lauten wie folgt, wobei YY das Jahr darstellt. CREATE TABLE log_YY ( dt DATETIME NICHT NULL, info VARCHAR(100) NICHT NULL, INDEX (dt) )ENGINE = MyISAM; Angenommen, der aktuelle Satz von Protokolldatentabellen umfasst log_2004, log_2005, log_2006 und log_2007. Sie können eine MERGE-Datentabelle wie unten gezeigt erstellen, um sie zu einer logischen Einheit zu gruppieren: Tabelle erstellen log_merge ( dt DATETIME NICHT NULL, info VARCHAR(100) NICHT NULL, INDEX(dt) ) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007); Der Wert der ENGINE-Option muss MERGE sein, und die Option UNION listet die zugehörigen Tabellen auf, die in diese MERGE-Tabelle aufgenommen werden. Sobald dieser MERGE erstellt ist, können Sie ihn wie jede andere Datentabelle abfragen, mit der Ausnahme, dass jede Abfrage gleichzeitig auf alle darin enthaltenen Mitgliedsdatentabellen angewendet wird. Mithilfe der folgenden Abfrage können wir die Gesamtzahl der Datenzeilen in den obigen Protokolldatentabellen ermitteln: Wählen Sie COUNT(*) aus log_merge aus. Um zu ermitteln, wie viele Protokolleinträge es in jedem dieser Jahre gibt, wird folgende Abfrage verwendet: SELECT YEAR(dt) AS y, COUNT(*) AS Einträge FROM log_merge GROUP BY y; MERGE-Tabellen ermöglichen nicht nur das gleichzeitige Verweisen auf mehrere Tabellen, ohne dass mehrere Abfragen ausgeführt werden müssen, sondern bieten auch die folgenden Vorteile. 1) Mit der MERGE-Tabelle kann eine logische Einheit erstellt werden, deren Größe die von jeder MyISAM-Tabelle zulässige maximale Länge überschreitet. 2) Die komprimierte Datentabelle ist in der MERGE-Datentabelle enthalten. Wenn beispielsweise ein bestimmtes Jahr vorbei ist, werden Sie der entsprechenden Protokolldatei wahrscheinlich keine Datensätze mehr hinzufügen. Sie können sie daher mit dem Tool myisampack komprimieren, um Platz zu sparen. Die MERGE-Tabelle funktioniert dann trotzdem wie gewohnt. 3) MERGE-Datentabellen unterstützen auch DELETE- und UPDATE-Operationen. Der INSERT-Vorgang ist umständlicher, da MySQL wissen muss, in welche Mitgliedstabelle die neue Datenzeile eingefügt werden soll. Die Definition einer MERGE-Tabelle kann eine Option INSERT_METHOD enthalten, deren mögliche Werte NO, FIRST und LAST sind, was jeweils bedeutet, dass der INSERT-Vorgang verboten ist und die neue Datenzeile in die erste oder letzte Tabelle eingefügt wird, die in der aktuellen UNION-Option aufgeführt ist. Beispielsweise behandelt die folgende Definition INSERT-Operationen an der Tabelle log_merge als INSERT-Operationen an der Tabelle log_2007 – der letzten in der Option UNION aufgeführten Tabelle: TABELLE ERSTELLEN log_merge( dt DATETIME NICHT NULL, info VARCHAR(100) NICHT NULL, INDEX(dt) ) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007) INSERT_METHOD = LAST; Erstellen Sie eine neue Mitgliedstabelle log_2009 mit derselben Tabellenstruktur und ändern Sie dann die Tabelle log_merge, um log_2009 einzuschließen: log_2009: CREATE TABLE log_2009 LIKE log_2008; //Neue Tabelle basierend auf der alten Tabelle erstellen ALTER TABLE log_merge UNION = (log_2004, log_2005, log_2006,log_2007,log_2008,log_2009); Das könnte Sie auch interessieren:
|
<<: Analyse der prinzipiellen Implementierung aus dem Quellcode des Mini-Programm-Entwicklertools
>>: CentOS 8-Installationsdiagramm (superdetailliertes Tutorial)
Inhaltsverzeichnis Übersicht zur Umgebungseinrich...
Inhaltsverzeichnis 1. So zeigen Sie die Binärdate...
Inhaltsverzeichnis 1. Was ist Multi-Instance 2. V...
Inhaltsverzeichnis Vorwort Was ist VueUse Einfach...
Es gibt zwei Möglichkeiten, MySQL unter Linux zu ...
Dies ist die Stilempfehlung der W3C-Organisation f...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. JDK installieren Manuelle I...
1. Suchen Sie zunächst die Datendatei auf dem Mig...
Docker bietet mehrere Netzwerke wie Bridge, Host,...
Inhaltsverzeichnis Lassen Sie uns zunächst kurz P...
In diesem Artikel wird hauptsächlich die Bereitst...
Inhaltsverzeichnis Was ist Front-End-Routing? Wie...
Einführung in den Linux-Top-Befehl Der Befehl top...
In diesem Artikel wird der spezifische Code für j...