TextOnline-DDL wird nur in MySQL 5.6 unterstützt. In den Versionen 5.5 und früher führt die Verwendung von Befehlen wie „alter table“/„create index“ zum Ändern der Tabellenstruktur zum Sperren der Tabelle, was in einer Produktionsumgebung offensichtlich nicht akzeptabel ist. In MySQL 5.7 wurde Online DDL hinsichtlich Leistung und Stabilität kontinuierlich optimiert. Es bietet erhebliche Leistungsvorteile, hat nur geringe Auswirkungen auf die Geschäftslast und weist kontrollierbare Ausfallzeiten auf. Im Vergleich zu pt-osc/gh-ost erfordert es keine Installation von Abhängigkeitspaketen von Drittanbietern. Es unterstützt auch Online DDL des Inplace-Algorithmus. Da keine Tabellen kopiert werden müssen, ist auch der erforderliche Speicherplatz geringer. Schauen wir uns zunächst eine gängige DDL-Anweisung an: ALTER TABLE tbl_name ADD PRIMARY KEY (Spalte), ALGORITHM=INPLACE, LOCK=NONE; Unter diesen beschreibt LOCK den Grad der Parallelität während des DDL-Vorgangs und ALGORITHM die Implementierungsmethode von DDL. LOCK-Parameter
ALGORITHMUS-Parameter
COPY TABLE-Prozess
Um dabei die Datenkonsistenz zu wahren, wird die Tabelle während des Zwischenkopierens der Daten (Copy Table) gesperrt und ist schreibgeschützt. Wenn eine Schreibanforderung eingeht, kann der Dienst nicht bereitgestellt werden, was zu einer explosionsartigen Zunahme der Verbindungsanzahl führt. IN-PLACE Prozess
Dabei erhält die ALTER-Anweisung beim Start zwar die MDL-Schreibsperre, diese degeneriert jedoch vor dem eigentlichen Kopieren der Daten in eine Lesesperre. Das heißt, während des zeitaufwändigsten Vorgangs des Kopierens der Daten in eine temporäre Datei kann die Originaltabelle mit DML bearbeitet werden. Sie wird nur während der letzten Umschaltphase zwischen der alten und der neuen Tabelle gesperrt. Dieser Umbenennungsprozess ist sehr schnell. Gleichzeitige DML- und DDL-Vorgänge zulassen
Obwohl Online-DDL für Vorgänge zulässig ist, die als teuer gekennzeichnet sind, stellen sie eine hohe Belastung für die E/A und CPU des Servers dar. Sie verursachen außerdem eine Replikationsblockierung, die eine weitere Form der Verzögerung der Slave-Replikation verursacht. Wenn die Tabelle groß ist, wird daher empfohlen, sie außerhalb der Spitzenzeiten auszuführen. DDL-Operationen, die kein gleichzeitiges DML zulassen
Oben finden Sie den ausführlichen Inhalt der ausführlichen Erläuterung zur Verwendung von MySQL Online DDL. Weitere Informationen zur Verwendung von MySQL Online DDL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Implementierungsprozess des Lupeneffekts im Javascript-Beispielprojekt
>>: Erstellen Sie eine schöne, umklappbare Anmelde- und Registrierungsoberfläche auf HTML+CSS-Basis
Inhaltsverzeichnis 1.1. Netzwerkzugriff zwischen ...
Inhaltsverzeichnis Die Grundprinzipien des respon...
Inhaltsverzeichnis 1. Was ist ein Prototyp? 2. Pr...
Details zur MySQL-Triggersyntax: Ein Trigger ist ...
In diesem Artikel wird der spezifische JavaScript...
Aufgrund der Anforderungen des Arbeitsprojekts is...
Hier ist ein Beispielcode für die Verwendung regu...
Ich habe einen Server, auf dem mehrere Docker-Con...
Als Programmierer, der gerade Tomcat gelernt hat,...
Im vorherigen Artikel wurde erläutert, wie Sie mi...
Inhaltsverzeichnis 1. Benutzerdefiniertes Routing...
Dokumentumfang Dieser Artikel behandelt den Modus...
Das <label>-Tag definiert eine Bezeichnung (...
Ursache: Der NVIDIA-Grafikkartentreiber ist besch...
In diesem Artikel wird der spezifische Code von V...