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
Installations-Tutorial zur kostenlosen Installati...
1. Übersicht In diesem Artikel wird das DOCTYPE-E...
Was bedeutet Strg+C, Strg+D, Strg+Z in Linux? Str...
Ich nenne diese Art von Fehler einen typischen „H...
Ich habe das System vor einiger Zeit neu installi...
1. Gesamtarchitekturdiagramm Im Vergleich zu ande...
Durchführung von Transaktionen Das Redo-Protokoll...
In diesem Artikel finden Sie eine ausführliche An...
Einführung Wenn wir über Verteilung sprechen, müs...
Inhaltsverzeichnis 1. Umgebungsvariable $PATH: 2....
Inhaltsverzeichnis 1. Eclipse konfiguriert Tomcat...
Code kopieren Der Code lautet wie folgt: <html...
Inhaltsverzeichnis Bidirektionales Bindungsprinzi...
Wenn Sie Eingabe und Bild in dieselbe Zeile setzen...
HTML-img-Tag: definiert ein Bild, das in eine Webs...