Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine Tabelle mit 120 Millionen Datensätzen effizient aktualisieren?

Wie kann ich eine Tabelle mit 120 Millionen Datensätzen effizient aktualisieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-03 11:57:38266Durchsuche

How Can I Efficiently Update a Table with 120 Million Records?

Aktualisierungsstrategien für 120 Millionen Datensätze: Ein effizienter Ansatz

Das Aktualisieren einer Tabelle mit 120 Millionen Datensätzen kann eine entmutigende Aufgabe sein. Der standardmäßige Aktualisierungsansatz kann die Ressourcen erschöpfen und einen längeren Zeitraum in Anspruch nehmen. Um diese Herausforderung zu bewältigen, besteht eine effizientere Methode darin, eine SELECT-Anweisung zum Auffüllen einer separaten Tabelle zu verwenden.

Schritte zum Auffüllen einer Sekundärtabelle

Für Tabellen ohne Clustered-Index und während eines Zeitraums ohne gleichzeitiges DML können die folgenden Schritte angewendet werden:

  1. Klonen Sie die BaseTable: Verwenden Sie eine SELECT-Anweisung, um eine clone.BaseTable zu erstellen, die die Daten von dbo.BaseTable und eine neue INT-Spalte enthält, die auf -1 gesetzt ist.
  2. Klon korrigieren: Neu erstellen Indizes, Einschränkungen usw. in der Klontabelle.
  3. Austauschen Tabellen:Verwenden Sie ALTER SCHEMA ... TRANSFER, um die ursprünglichen und geklonten Tabellen auszutauschen.
  4. Bereinigung:Löschen Sie die alte Tabelle.

Für Tabellen Bei Clustered-Indizes oder anderen Komplexitäten ist ein detaillierterer Prozess erforderlich:

Detaillierter Prozess für Nicht einfache Szenarien

  1. BaseTable neu erstellen: Klonen Sie die Originaltabelle in ein Klonschema mit einem Clustered-Index, Identitätsspalten, berechneten Spalten und der neuen INT-Spalte.
  2. Einschränkungen ausschließen: Trigger, Fremdschlüsseleinschränkungen weglassen, Nicht gruppierte Indizes und Prüfbeschränkungen.
  3. Einfügung testen: Führen Sie einen kleinen Einfügevorgang durch, um die Funktionalität der geklonten Tabelle zu überprüfen.
  4. Klon abschneiden: Löschen Sie die Klontabelle.
  5. Masseneinfügung: Führen Sie eine Masseneinfügung durch in die Klontabelle im Massenprotokoll- oder einfachen Wiederherstellungsmodus.
  6. Einschränkungen neu erstellen: Alle nicht gruppierten Einschränkungen, Indizes, Trigger und Prüfeinschränkungen nacheinander neu erstellen.
  7. Schemaübertragung: Verschieben Sie die geklonte Tabelle in das DBO-Schema und die Originaltabelle in ein Backup Schema.
  8. True-Up-Vorgang: Führen Sie gegebenenfalls alle erforderlichen True-Up-Vorgänge durch.

Fazit

Durch die Verwendung dieses Select-and-Popule-Ansatzes wird es möglich, große Tabellen effizient zu aktualisieren. Diese Methode kann die für Tabellenaktualisierungen erforderliche Zeit erheblich reduzieren und ist somit eine praktikable Lösung für Tabellen mit einer beträchtlichen Anzahl von Datensätzen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Tabelle mit 120 Millionen Datensätzen effizient aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn