Veröffentlichung von MySQL DBMS 9.1.0

Oracle hat einen neuen Zweig des MySQL 9.1.0 DBMS erstellt. MySQL Community Server 9.1.0-Builds sind für alle wichtigen Linux-, FreeBSD-, macOS- und Windows-Distributionen vorbereitet. Im Rahmen des im letzten Jahr eingeführten neuen Release-Modells wird MySQL 9.1 als „Innovation“-Zweig eingestuft, der auch das nächste große Release, MySQL 9.2, umfassen wird. Innovationszweige werden für diejenigen empfohlen, die frühzeitig auf neue Funktionen zugreifen möchten. Sie werden alle drei Monate veröffentlicht und nur bis zur Veröffentlichung der nächsten wichtigen Version unterstützt (z. B. wurde nach dem Erscheinen des 3-Zweigs die Unterstützung für den 9.1-Zweig eingestellt). ). Im nächsten Sommer planen sie die Erstellung einer LTS-Version, die für Implementierungen empfohlen wird, die Vorhersehbarkeit und die langfristige Beibehaltung unveränderten Verhaltens erfordern. Im Anschluss an den LTS-Zweig wird ein neuer Innovationszweig gebildet – MySQL 9.0.

Wichtige Änderungen in MySQL 9.1:

  • Der Operation „CREATE VIEW“ wurde Unterstützung für den Ausdruck „IF NOT EXISTS“ hinzugefügt. Dadurch können Sie die Erstellung einer Ansicht nur dann organisieren, wenn eine Ansicht mit dem angegebenen Namen noch nicht vorhanden ist, und vermeiden, dass bei der Ansicht ein Fehler zurückgegeben wird wurde bereits erstellt.
  • Das Laden von Triggern beim Ausführen schreibgeschützter Vorgänge wurde gestoppt. Bisher wurden Trigger immer dann geladen, wenn auf eine Tabelle zugegriffen wurde, was in Situationen, in denen Trigger nicht verwendet wurden (z. B. beim Ausführen von SELECT-Abfragen), zu Speicherverschwendung und CPU-Last führte. In MySQL 9.1 ist die Verarbeitung und das Laden von Triggern in zwei Phasen unterteilt: Lesen von Metadaten über den Trigger und Parsen + Ausführen des Triggers. Die in der ersten Stufe erhaltenen Daten werden einmal gespeichert und dann über verschiedene Triggerinstanzen hinweg geteilt. Der Trigger wird nur für Ausdrücke analysiert und ausgeführt, die Daten ändern. Um den Speicherverbrauch zu reduzieren, haben wir außerdem nach Bedarf auf die dynamische Speicherzuweisung umgestellt, anstatt Puffer für die Fehlerbehandlung in Triggern statisch zuzuweisen.
  • Die Ausgabe der EXPLAIN-Operation wurde erweitert, um Informationen über die Verwendung von Mehrbereichslesevorgängen und die Verwendung einer Semijoin-Strategie anzuzeigen, bei der JOIN-Operationen Zeilen aus nur einer Tabelle verarbeiten.
  • Die atomare Ausführung der Operationen „CREATE DATABASE“ und „DROP DATABASE“ dient zum Schutz vor Ausfällen im Falle eines Absturzes oder von Fehlern auf Dateisystemebene während der Ausführung dieser Operationen. Wenn beispielsweise „CREATE DATABASE“ früher abstürzte, konnte eine unvollständige, nicht funktionierende Datenbankspeicherstruktur erstellt werden, deren Bereinigung einen manuellen Eingriff erforderte.
  • In JavaScript geschriebene gespeicherte Prozeduren bieten Unterstützung für den VECTOR-Typ. Daten mit dem angegebenen Typ können jetzt in Eingabe- und Rückgabeparametern übergeben werden.
  • Es wurde die Möglichkeit zur Authentifizierung hinzugefügt, wenn eine Verbindung zu einem DBMS über das OpenID Connect-Protokoll hergestellt wird.
  • Es wurden 27 Sicherheitslücken behoben, wobei die schwerwiegendste (CVE-2024-5535) als kritisch (9.1 von 10) eingestuft wurde. Diese Sicherheitslücke ermöglicht die Ausnutzung aus der Ferne ohne Authentifizierung. Ursache ist ein Lesefehler außerhalb des zulässigen Speicherbereichs in der OpenSSL-Bibliothek, der nach dem Verbindungsaufbau zu einem Absturz oder einem Speicherleck in der Antwort führt. Server mit dem Hinweis auf fehlerhafte Protokollparameter.

Source: opennet.ru

Kommentar hinzufügen