Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich einen Index für eine riesige MySQL-Produktionstabelle, ohne die Tabelle zu sperren?
Problem:
Sie müssen einen Index erstellen auf einer riesigen MySQL-Tabelle in einer Produktionsumgebung, ohne den laufenden Betrieb zu unterbrechen.
Conventional Wisdom (2015):
In MySQL-Versionen vor 5.6 wird ein Index für a erstellt MyISAM- oder InnoDB-Tabellen blockieren Schreibvorgänge.
Online-Indexaktualisierungen in MySQL 5.6 (2017):
MySQL 5.6 und höher unterstützen Online-Indexaktualisierungen, sodass Sie oder hinzufügen können Löschen Sie Indizes, ohne Lese- oder Schreibvorgänge zu blockieren.
Schema ohne Ausfallzeit aktualisieren:
Wenn Sie MySQL 5.6 oder höher nicht verwenden können, können Sie Ihr Schema mit der folgenden Methode aktualisieren ohne Ausfallzeit:
Perconas pt-online-schema-change Tool:
Dieses Tool bietet eine alternative Methode zum Ändern des Tabellenschemas, ohne Vorgänge zu blockieren. Es erstellt eine neue Tabelle mit der gewünschten Struktur, nimmt die Schemaänderungen vor und kopiert nach und nach Daten aus der Originaltabelle, bevor es sie ersetzt.
Amazon RDS:
Amazon RDS Vereinfacht den Prozess, indem es Ihnen ermöglicht, Lesereplikate zu erstellen, Schemaänderungen an einem Replikat vorzunehmen und das Replikat dann zum neuen Master heraufzustufen. Dieser Ansatz minimiert Ausfallzeiten und vereinfacht den Umstellungsprozess.
Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Index für eine riesige MySQL-Produktionstabelle, ohne die Tabelle zu sperren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!