Nach einem Jahr der Entwicklung und drei Vorabversionen wurde die erste stabile Version der neuen Datenbankversion MariaDB 10.6 veröffentlicht. Diese Version ist eine Weiterentwicklung von MySQL, die abwĂ€rtskompatibel bleibt und sich durch die Integration zusĂ€tzlicher Speicher-Engines sowie erweiterte Funktionen auszeichnet. Der Support fĂŒr diese Version wird bis Juli 2026 fĂŒr fĂŒnf Jahre gewĂ€hrleistet.
Die Entwicklung von MariaDB wird von der unabhÀngigen MariaDB Foundation geleitet, die einen vollstÀndig offenen und transparenten Entwicklungsprozess verfolgt, der nicht von einzelnen Anbietern abhÀngig ist. MariaDB ersetzt MySQL in vielen Linux-Distributionen (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) und ist in bedeutenden Projekten wie Wikipedia, Google Cloud SQL und Nimbuzz integriert.
Die wichtigsten Verbesserungen von MariaDB 10.6:
- Die AtomaritĂ€t der AusfĂŒhrung von AusdrĂŒcken wie âCREATE TABLE|VIEW|SEQUENCE|TRIGGERâ, âALTER TABLE|SEQUENCEâ, âRENAME TABLE|TABLESâ und âDROP TABLE|VIEW|VIEW|TRIGGER|DATABASEâ wird gewĂ€hrleistet. Entweder wird der Ausdruck vollstĂ€ndig ausgefĂŒhrt, oder alles wird in den Ursprungszustand zurĂŒckversetzt. Bei "DROP TABLE"-Operationen, die mehrere Tabellen gleichzeitig löschen, wird die AtomaritĂ€t auf der Ebene jeder einzelnen Tabelle sichergestellt. Ziel dieser Ănderung ist es, die IntegritĂ€t im Falle eines Systemabsturzes wĂ€hrend der AusfĂŒhrung der Operation sicherzustellen. Server FrĂŒhere AbstĂŒrze konnten dazu fĂŒhren, dass temporĂ€re Tabellen und Dateien zurĂŒckbleiben, die Synchronisation der Tabellen in den Storage-Engines und frm-Dateien gestört wird oder dass einzelne Tabellen bei der gleichzeitigen Umbenennung mehrerer Tabellen nicht umbenannt werden. Die IntegritĂ€t wird durch das FĂŒhren eines Wiederherstellungsprotokolls sichergestellt, dessen Pfad ĂŒber die neue Option ââlog-ddl-recovery=Dateiâ definiert werden kann (standardmĂ€Ăig ddl-recovery.log).
- In der SQL 2008-Spezifikation wurde die Konstruktion âSELECT ⊠OFFSET ⊠FETCHâ implementiert, die es ermöglicht, eine bestimmte Anzahl von Zeilen ab einem angegebenen Offset abzurufen. Dabei kann der Parameter âWITH TIESâ genutzt werden, um das nĂ€chste nachfolgende Ergebnis anzuhĂ€ngen. Beispielsweise unterscheidet sich der Ausdruck âSELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIESâ von der Konstruktion âSELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1â dadurch, dass er ein zusĂ€tzliches Element am Ende ausgibt (anstatt 3 werden 4 Zeilen ausgegeben).
- FĂŒr die InnoDB-Engine wurde die Syntax âSELECT ⊠SKIP LOCKEDâ implementiert, die es ermöglicht, Zeilen auszuschlieĂen, fĂŒr die keine Sperre gesetzt werden kann (âLOCK IN SHARE MODEâ oder âFOR UPDATEâ).
- Die Möglichkeit, Indizes zu ignorieren, wurde implementiert (in MySQL 8 wird diese FunktionalitĂ€t als âunsichtbare Indizesâ bezeichnet). Die Kennzeichnung eines Index zum Ignorieren erfolgt mit dem Flag IGNORED im Ausdruck âALTER TABLEâ. Danach bleibt der Index sichtbar und aktualisierbar, wird jedoch vom Optimierer nicht genutzt.
- Die Funktion JSON_TABLE() wurde hinzugefĂŒgt, um JSON-Daten in ein relationales Format zu konvertieren. Beispielsweise kann ein JSON-Dokument fĂŒr die Verwendung im Kontext einer Tabelle umgewandelt werden, die innerhalb eines FROM-Blocks in einer SELECT-Anweisung angegeben werden kann.
- Die KompatibilitĂ€t mit Oracle-Datenbanken wurde verbessert: UnterstĂŒtzung fĂŒr anonyme Unterabfragen im FROM-Block hinzugefĂŒgt. Die MINUS-Konstruktion (Ă€quivalent zu EXCEPT) wurde implementiert. Die Funktionen ADD_MONTHS(), TO_CHAR(), SYS_GUID() und ROWNUM() wurden hinzugefĂŒgt.
- Im InnoDB-Engine wurde das EinfĂŒgen in leere Tabellen beschleunigt. Das Standardformat COMPRESSED wurde in den Nur-Lese-Modus versetzt. Das SYS_TABLESPACES-Schema ersetzt SYS_DATAFILES und spiegelt direkt den Zustand im Dateisystem wider. FĂŒr temporĂ€re TabellenrĂ€ume wird UnterstĂŒtzung fĂŒr verzögerte SchreibvorgĂ€nge bereitgestellt. Die UnterstĂŒtzung des alten PrĂŒfziffernalgorithmus, der zur KompatibilitĂ€t mit MariaDB 5.5 beibehalten wurde, wurde eingestellt.
- In der Replikationssystem wurde die GröĂe des Parameters master_host von 60 auf 255 Zeichen erhöht, und master_user auf 128. Eine Variable binlog_expire_logs_seconds wurde hinzugefĂŒgt, um die Ablaufzeit des BinĂ€rprotokolls in Sekunden zu konfigurieren (zuvor wurde die Ablaufzeit nur in Tagen ĂŒber die Variable expire_logs_days bestimmt).
- Im Mechanismus der synchronen Multi-Master-Replikation von Galera wurde die Variable wsrep_mode implementiert, um die Parameter der WSREP-API (Write Set REPlication) einzustellen. Der Wechsel von unverschlĂŒsselten Galera-Kommunikationen auf die Verwendung von TLS ist ohne Unterbrechung des Clusters möglich.
- Es wurde ein sys-schema eingefĂŒhrt, das eine Sammlung von Ansichten, Funktionen und Prozeduren zur Analyse von Datenbankoperationen umfasst.
- Hilfstabellen zur Analyse der Replikationsleistung wurden hinzugefĂŒgt.
- In das Set von Informationstabellen wurden die Ansichten INFORMATION_SCHEMA.KEYWORDS und INFORMATION_SCHEMA.SQL_FUNCTIONS aufgenommen, die eine Liste der verfĂŒgbaren SchlĂŒsselwörter und Funktionen ausgeben.
- Die Speicher TokuDB und CassandraSE wurden entfernt.
- Die Codierung utf8 wurde von der vierbyte-reprÀsentation utf8mb4 (U+0000..U+10FFFF) auf die drei-byte-reprÀsentation utf8mb3 (deckt den Unicode-Bereich U+0000..U+FFFF ab) umgestellt.
- Die UnterstĂŒtzung fĂŒr die Aktivierung ĂŒber Socket in systemd wurde hinzugefĂŒgt.
- Im GSSAPI-Plugin wurde die UnterstĂŒtzung fĂŒr Active Directory-Gruppennamen und SID hinzugefĂŒgt.
- Es wurde eine ĂberprĂŒfung auf die VerfĂŒgbarkeit der Konfigurationsdatei $MARIADB_HOME/my.cnf zusĂ€tzlich zu $MYSQL_HOME/my.cnf implementiert.
- Neue Systemvariablen binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode und Innodb_buffer_pool_pages_lru_freed wurden eingefĂŒhrt.
Quelle: opennet.ru
