Die Version 12.2.2 des Datenbanksystems MariaDB wurde veröffentlicht und gilt als die erste stabile Version des 12.2-Zweigs. Der MariaDB 12.2-Zweig wird als Rolling-Releases betrachtet, setzt die schrittweise Entwicklung neuer Funktionen fort und ersetzt den MariaDB 12.1-Zweig. Gleichzeitig wurde die Version 12.3.1 von MariaDB veröffentlicht, die eine neue Implementierung des BinĂ€rprotokolls (binlog) enthĂ€lt und den Status eines Kandidaten fĂŒr zukĂŒnftige LTS-Versionen hat. Der MariaDB 12.2-Zweig wird bis zur Veröffentlichung von 12.3.2 unterstĂŒtzt.
Das MariaDB-Projekt ist eine Abspaltung von MySQL, die die AbwĂ€rtskompatibilitĂ€t beibehĂ€lt und sich durch die Integration zusĂ€tzlicher Speicher-Engines und erweiterte Funktionen auszeichnet. Die Entwicklung von MariaDB wird von der unabhĂ€ngigen Organisation MariaDB Foundation geleitet, die einen offenen und transparenten Entwicklungsprozess pflegt und nicht von einzelnen Anbietern abhĂ€ngig ist. MariaDB wird in vielen Linux-Distributionen (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) anstelle von MySQL bereitgestellt und ist in groĂen Projekten wie Wikipedia, Google Cloud SQL und Nimbuzz implementiert.
Zu den Ănderungen im MariaDB 12.2-Zweig gehören:
- Im KompatibilitÀtsmodus mit Oracle-Datenbanken wurden die Funktionen TO_NUMBER (Umwandlung eines Strings in eine Zahl) und TRUNC (Abschneiden von Zeitangaben, z.B. auf Stunde, Tag, Monat, Jahr) implementiert.
- Bei der DurchfĂŒhrung von JOIN-Operationen wurde eine Optimierung implementiert, die die Einzigartigkeit der Zeilen in Unterabfragen mit dem Ausdruck âGROUP BYâ berĂŒcksichtigt, um eine genauere Prognose der Anzahl der resultierenden Zeilen (out_rows) zu ermöglichen und die Anwendung von Indizes korrekt zu gestalten.
- Neue Steuerungsoptionen fĂŒr den Optimierer ROWID_FILTER/NO_ROWID_FILTER und INDEX_MERGE/NO_INDEX_MERGE wurden hinzugefĂŒgt. AuĂerdem besteht die Möglichkeit, Blocknamen in den Abfragen implizit anzugeben (Optimierungsoptionen können Punkt-zu-Punkt auf Teile von Abfragen angewendet werden, indem auf sie mit den Namen âselect#Nâ verwiesen wird, wobei N die fortlaufende Nummer des Blocks ist). Zum Beispiel: âselect /*+ JOIN_ORDER(@âselect#2â twenty,ten) */ âŠ.â.
- Die EinschrĂ€nkungen bezĂŒglich der Verschachtelungstiefe von Strukturen in Funktionen zur Verarbeitung von JSON wurden aufgehoben (das Limit JSON_DEPTH_LIMIT, das zuvor den Wert 32 hatte, wurde entfernt).
- Eine Tabelle TRIGGERED_UPDATE_COLUMNS wurde im INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS) hinzugefĂŒgt, die die Spalten anzeigt, die bei der Auslösung eines Triggers geĂ€ndert werden.
- In der Tabelle PARAMETERS im INFORMATION_SCHEMA wurde die Spalte PARAMETER_DEFAULT implementiert, die die Standardwerte der Parameter gespeicherter Prozeduren enthÀlt.
- UnterstĂŒtzung fĂŒr den Ausdruck âCREATE GLOBAL TEMPORARY TABLEâ zur Erstellung globaler temporĂ€rer Tabellen wurde experimentell implementiert. Solche temporĂ€ren Tabellen werden nach Beendigung der Sitzung gelöscht und sind fĂŒr alle Benutzer sichtbar, enthalten jedoch Daten, die fĂŒr jeden Benutzer individuell sind.
- Im Testmodus wurde eine verbesserte UnterstĂŒtzung fĂŒr die Replikation zwischen Tabellen mit unterschiedlicher Struktur angeboten.
Quelle: opennet.ru
