Die Version 12.2.2 des MariaDB-Datenbanksystems wurde veröffentlicht und gilt als erstes stabiles Release der Reihe 12.2. Die Serie MariaDB 12.2 wird als Rolling-Release eingestuft, entwickelt kontinuierlich neue Funktionen und ersetzt die Serie MariaDB 12.1. Gleichzeitig wurde die Version 12.3.1 mit einer neuen Implementierung des Binlogs veröffentlicht, die den Status eines Kandidaten für zukünftige LTS-Releases hat. Die Serie MariaDB 12.2 wird bis zur Veröffentlichung von 12.3.2 unterstützt.
Das Projekt MariaDB entwickelt einen Fork von MySQL, der die Rückwärtskompatibilität bewahrt und sich durch die Integration zusätzlicher Speicher-Engines und erweiterter Möglichkeiten auszeichnet. Die Entwicklung von MariaDB wird von der unabhängigen Organisation MariaDB Foundation gemäß einem offenen und transparenten Entwicklungsprozess überwacht, der nicht von einzelnen Herstellern abhängig ist. MariaDB wird anstelle von MySQL in vielen Linux-Distributionen (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) bereitgestellt und ist in großen Projekten wie Wikipedia, Google Cloud SQL und Nimbuzz implementiert.
Unter den Änderungen in der Serie MariaDB 12.2:
- Im Kompatibilitätsmodus mit der Oracle-Datenbank wurden die Funktionen TO_NUMBER (Umwandlung von Zeichenfolgen in Zahlen) und TRUNC (Abschneiden von Datumsangaben, z. B. auf Stunde, Tag, Monat, Jahr) implementiert.
- Bei der Durchführung von Tabellenzusammenführungsoperationen (JOIN) wurde eine Optimierung implementiert, die die Einzigartigkeit der Zeilen in Unterabfragen mit dem Ausdruck „GROUP BY“ berücksichtigt, um die Anzahl der resultierenden Zeilen (out_rows) genauer vorherzusagen und die Indizes korrekt anzuwenden.
- Neue Optionen zur Steuerung des Optimierers wurden hinzugefügt: ROWID_FILTER/NO_ROWID_FILTER und INDEX_MERGE/NO_INDEX_MERGE sowie die Möglichkeit, Blocknamen implizit in Abfragen anzugeben (Optimierungsoptionen können gezielt auf Teile von Abfragen angewendet werden, indem sie mit «select#N», wobei N die Blocknummer ist, referenziert werden). Zum Beispiel: «select /*+ JOIN_ORDER(@"select#2" twenty,ten) */ …».
- Die Beschränkungen für die Verschachtelungstiefe von Strukturen in Funktionen zur Arbeit mit JSON wurden aufgehoben (die Begrenzung JSON_DEPTH_LIMIT, die zuvor 32 war, wurde entfernt).
- Eine Tabelle TRIGGERED_UPDATE_COLUMNS wurde im Schema INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS) hinzugefügt, die die Spalten anzeigt, die bei der Auslösung eines Triggers geändert werden.
- Im Tabellen PARAMETERS im Schema INFORMATION_SCHEMA wurde eine Spalte PARAMETER_DEFAULT implementiert, die Standardwerte für die Parameter gespeicherter Prozeduren enthält.
- Experimentelle Unterstützung für den Ausdruck «CREATE GLOBAL TEMPORARY TABLE» zur Erstellung globaler temporärer Tabellen wurde implementiert. Solche temporären Tabellen werden nach Beendigung der Sitzung gelöscht und sind für alle Benutzer sichtbar, enthalten jedoch datenindividuelle Informationen für jeden Benutzer.
- Im Testmodus wurde eine verbesserte Unterstützung für die Replikation zwischen Tabellen mit unterschiedlicher Struktur angeboten.
Quelle: opennet.ru
