Version der Datenbank MySQL 9.1.0

Die Firma Oracle hat einen neuen Zweig der Datenbank MySQL 9.1.0 geschaffen. Die Builds von MySQL Community Server 9.1.0 sind für alle gängigen Linux-Distributionen, FreeBSD, macOS und Windows vorbereitet. Im Rahmen des im vergangenen Jahr eingeführten neuen Modells zur Veröffentlichung von Versionen wird MySQL 9.1 den "Innovation"-Zweigen zugeordnet, zu denen auch die nächste bedeutende Version MySQL 9.2 gehören wird. Innovation-Zweige werden empfohlen für diejenigen, die früheren Zugang zu neuen Funktionen erhalten möchten, und werden alle 3 Monate veröffentlicht, wobei sie nur bis zur Veröffentlichung der nächsten bedeutenden Version unterstützt werden (z.B. nach dem Erscheinen des Zweigs 9.1 wird die Unterstützung des Zweigs 9.0 eingestellt). Im Sommer des nächsten Jahres ist die Erstellung einer LTS-Version geplant, die für Implementierungen empfohlen wird, die Vorhersehbarkeit und eine langfristige Bereitstellung eines stabilen Verhaltens erfordern. Nach dem LTS-Zweig wird ein neuer Innovation-Zweig - MySQL 10.0 - gebildet.

Die wichtigsten Änderungen in MySQL 9.1:

  • In den Befehl „CREATE VIEW“ wurde die Unterstützung für den Ausdruck „IF NOT EXISTS“ hinzugefügt, der es ermöglicht, eine Ansicht nur dann zu erstellen, wenn eine Ansicht mit dem angegebenen Namen noch nicht existiert und somit die Rückgabe eines Fehlers zu vermeiden, wenn die Ansicht bereits erstellt wurde.
  • Die Ladung von Triggern wurde eingestellt, wenn nur Leseoperationen ausgeführt werden. Zuvor wurden Trigger bei jedem Zugriff auf die Tabelle geladen, was zu einem hohen Speicherverbrauch und einer Belastung der CPU führte, wenn die Trigger nicht verwendet wurden (z.B. bei der Ausführung von SELECT-Abfragen). In MySQL 9.1 wurde die Verarbeitung und das Laden von Triggern in zwei Phasen unterteilt: Lesen der Metadaten über den Trigger und Parsen+Ausführen des Triggers. Daten, die in der ersten Phase gesammelt werden, werden einmal gespeichert und dann gemeinsam in verschiedenen Instanzen des Triggers verwendet. Das Parsen und Ausführen des Triggers erfolgt nur für Ausdrücke, die zu Datenänderungen führen. Darüber hinaus wurde der Übergang zu dynamischer Speicherzuweisung nach Bedarf vorgenommen, um den Speicherverbrauch zu reduzieren, anstelle von statischer Zuweisung von Puffern zur Bearbeitung von Fehlern in den Triggern.
  • Die Ausgabe des Befehls „EXPLAIN“ wurde erweitert, in der jetzt Informationen über die Verwendung des Multi-Range-Reads und die Anwendung der Semijoin-Strategie angezeigt werden, bei der bei JOIN-Operationen nur Zeilen aus einer Tabelle verarbeitet werden.
  • Die atomare Ausführung der Operationen „CREATE DATABASE“ und „DROP DATABASE“ wird sichergestellt, um vor Ausfällen im Falle eines unerwarteten Absturzes oder von Fehlern auf der Ebene des Dateisystems während der Ausführung dieser Operationen zu schützen. Beispielsweise konnte bei einem unerwarteten Absturz von „CREATE DATABASE“ eine unvollständige, nicht funktionsfähige Struktur des Datenbank-Storage entstehen, deren Bereinigung manuelles Eingreifen erforderte.
  • In den in JavaScript geschriebenen Stored Procedures wird die Unterstützung des Typs VECTOR gewährleistet. Daten mit diesem Typ können jetzt in Eingangs- und Rückgabewerten übergeben werden.
  • Die Möglichkeit zur Authentifizierung bei der Verbindung zur DBMS unter Verwendung des OpenID Connect-Protokolls wurde hinzugefügt.
  • 27 Schwachstellen wurden behoben, von denen die schwerwiegendste (CVE-2024-5535) als kritisch (9,1 von 10) eingestuft wurde. Diese Schwachstelle kann aus der Ferne ohne Authentifizierung ausgenutzt werden. Das Problem wird durch das Lesen von Daten aus dem Bereich außerhalb des zugewiesenen Puffers in der OpenSSL-Bibliothek verursacht und führt zu einem Absturz oder zu einem Speicherleck im Antwortinhalt nach der Verbindung mit Server unter Angabe ungültiger Protokollparameter.

Quelle: opennet.ru

60GB SSD 8Gb DDR4