Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Folgen der Änderung der MySQL-Speicher-Engine, während die Anwendung in der Produktion läuft

Jede Änderung, die Sie mit ALTER TABLE vornehmen das eine Tabellenkopie erfordert, wird die Tabelle sperren. Dies ist das wichtigste Problem für Anwendungen. Auf die Tabelle kann bei Abfragen durch keine Anwendung zugegriffen werden.

Wie lange diese Sperre dauert, hängt von der Größe der Tabelle, der Leistung Ihres Servers und der sonstigen Belastung ab, der der Server ausgesetzt ist.

Sie können Änderungen mit minimaler Ausfallzeit vornehmen, wenn Sie ein Online-Schemaänderungstool wie pt-online-schema-change .

Eine andere Strategie besteht darin, Änderungen an Tabellen in einer replizierten Datenbankinstanz vorzunehmen. Es ist in Ordnung, wenn Tabellen auf einem Replikat eine andere Speicher-Engine haben als auf dem Master. Es ist Ihnen egal, ob Tabellen gesperrt sind, es wird nur dazu führen, dass die Replikation hinterherhinkt, und wenn die Änderungen abgeschlossen sind, sollte die Replikation aufholen. Wenn das alles erledigt ist, können Sie Ihre Anwendung auf die Verwendung des Replikats umstellen und dann die frühere Master-Datenbankinstanz außer Betrieb nehmen.