Problemstellung:
Erstellen Sie einen Index für eine große MySQL-Produktion Die Tabelle kann möglicherweise zu Datenbanksperren führen. Dies stellt eine Herausforderung dar, während des Indexierungsprozesses einen unterbrechungsfreien Zugriff auf die Datenbank sicherzustellen.
Lösung:
Seit MySQL 5.6 unterstützt die Datenbank inkrementelle Indexaktualisierungen im laufenden Betrieb. Dies bedeutet, dass die Indexerstellung oder -löschung gleichzeitig mit Lese- und Schreibvorgängen erfolgen kann, wodurch das Risiko von Blockaden verringert und die Datenintegrität sichergestellt wird.
In MySQL 5.5 und früheren Versionen UPDATE-Vorgänge Bei einer Tabelle mit einer aktiven Indexaktualisierung werden Blöcke auftreten. Dies kann die Leistung erheblich beeinträchtigen und zu Ausfällen führen.
Um diese Blockaden zu vermeiden, sollten Sie den folgenden Ansatz in Betracht ziehen:
1. Zirkuläre Master-Server:
2. Perconas pt-online-schema-change:
3. RDS Read Replica Promotion:
Wenn Sie Amazons RDS verwenden, können Sie ein schreibgeschütztes Replikat erstellen und die Indexaktualisierung darauf durchführen. Sobald Sie fertig sind, stufen Sie die Replik zum neuen Master hoch. Dieser Ansatz vereinfacht den Prozess durch die Automatisierung des Failovers und der Datenmigration.
Hinweis: Dieser Ansatz erfordert einen Neustart der Anwendung, um die Verbindung zur aktualisierten Datenbankinstanz wiederherzustellen.
Das obige ist der detaillierte Inhalt vonWie können Sie eine riesige MySQL-Produktionstabelle indizieren, ohne den Betrieb zu unterbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!