Die Firma Oracle hat einen neuen Branch der MySQL-Datenbankversion 9.0.0 erstellt. Die Builds des MySQL Community Servers 9.0.0 sind für alle gängigen Linux-Distributionen, FreeBSD, macOS und Windows vorbereitet. Im Rahmen des im letzten Jahr eingeführten Modells zur Erstellung von Releases wurde MySQL 9.0 den "Innovation"-Branches zugeordnet, zu denen auch die folgenden bedeutenden Releases MySQL 9.1 und 9.2 gehören werden. Innovation-Branches werden für diejenigen empfohlen, die frühzeitig Zugang zu neuen Funktionen erhalten möchten. Sie werden alle 3 Monate veröffentlicht und nur bis zur Veröffentlichung des nächsten signifikanten Releases unterstützt (z.B. wird nach dem Erscheinen des Branch 9.1 die Unterstützung des Branch 9.0 eingestellt). Etwa ein Jahr später ist ein LTS-Release geplant, das für Implementierungen empfohlen wird, die Vorhersehbarkeit und langfristige Beständigkeit erfordern. Nach dem LTS-Branch wird ein neuer Innovation-Branch – MySQL 10.0 – erstellt.
Hauptänderungen in MySQL 9.0:
- Bei der Ausführung der Konstruktion "EXPLAIN ANALYZE INTO" wurde die Möglichkeit hinzugefügt, die Ausgabe im JSON-Format in eine benutzerdefinierte Variable zu speichern, die dann als Argument in Funktionen zur Arbeit mit JSON verwendet werden kann.
EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
- Die Formulierung der Ausdrücke "CREATE EVENT", "ALTER EVENT" und "DROP EVENT" ist als parametrisierte Abfragen innerhalb von gespeicherten Prozeduren erlaubt. Die Erstellung einer parametrisierten Abfrage erfolgt mit Hilfe des Ausdrucks PREPARE, und die Ausführung mit dem Ausdruck EXECUTE.
CREATE PROCEDURE sp(n INT)
BEGIN
SET @s1 = "CREATE EVENT e ON SCHEDULE EVERY ";
SET @s2 = " SECOND"
STARTS CURRENT_TIMESTAMP + INTERVAL 10 SECOND
ENDS CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
ON COMPLETION PRESERVE
DO
INSERT INTO d.t VALUES ROW(NULL, NOW(), FLOOR(RAND()*100))";SET @s = CONCAT(@s1, n, @s2);
PREPARE ps FROM @s;
EXECUTE ps;
DEALLOCATE PREPARE ps;
END - Zwei neue Systemtabellen wurden hinzugefügt, die Informationen über Systemvariablen enthalten: variables_metadata – enthält Informationen zu Namen, Gültigkeitsbereichen, Typen und Wertebereichen aller vom MySQL-Server unterstützten Systemvariablen; global_variable_attributes – enthält die Werte der Attribute, die für globale Variablen wie offline_mode und read_only festgelegt wurden.
- Das zuvor als veraltet erklärte Server-Plugin mysql_native_password, das die Authentifizierung mit Passwörtern ermöglicht, wurde entfernt. Es wird empfohlen, anstelle von mysql_native_password das Plugin caching_sha2_password zu verwenden, das den Algorithmus SHA2 anstelle von SHA1 für die Hash-Erstellung verwendet.
- 15 Variablen wurden zur Konfiguration und Inspektion der MLE (Multilingual Engine Component) hinzugefügt, die die Verwendung von Code in prozeduralen und funktionalen Abfragen ermöglicht, die nicht SQL sind.
Quelle: opennet.ru
