RSS DEV-Gemeinschaft

Schema-Änderungen in MySQL: Wird Ihre Tabelle gesperrt?

Tabellenebene-Sperren in MySQL können die Leistung von Geschäftssystemen erheblich beeinträchtigen, insbesondere bei großen Datenmengen. Wenn eine ALTER-TABLE-Operation ausgeführt wird, sperrt MySQL die Tabelle standardmäßig, blockiert andere Transaktionen, bis die Operation abgeschlossen ist. Dies kann zu Abfrageverzögerungen, blockierten Schreiboperationen und Systemverlangschnungen führen. Es gibt jedoch in neueren Versionen von MySQL Ausnahmen. Beispielsweise kann das Hinzufügen einer Spalte zu einer Tabelle mit dem InnoDB-Speicher-Engine in MySQL 5.6 und höher nicht zwangsläufig die Tabelle sperren. MySQL 5.6 führte Online-DDL-Operationen ein, die bestimmte Tabellenmodifikationen ohne Sperre der Tabelle ermöglichen. In MySQL 5.6 ist das Hinzufügen einer Spalte eine Online-Operation, die ALGORITHM=INPLACE verwenden kann, um eine vollständige Sperre der Tabelle zu vermeiden. MySQL 8.0 optimierte Online-DDL-Operationen weiter, sodass die meisten ALTER-TABLE-Operationen ohne Sperre der Tabelle durchgeführt werden können. MySQL 8.0 führt Funktionen wie Atomare DDL, Instant-Metadaten-Updates und inkrementelle Metadaten-Updates ein, um die Sperrezeit der Tabelle zu reduzieren und die gleichzeitige Leistung zu verbessern. Trotz dieser Optimierungen wird empfohlen, ALTER-TABLE-Operationen während der Nebenstunden durchzuführen, um den Einfluss auf Anwendungen zu minimieren.
favicon
dev.to
Schema Changes in MySQL: Will Your Table Be Locked?
Bild zum Artikel: Schema-Änderungen in MySQL: Wird Ihre Tabelle gesperrt?
Create attached notes ...