Stabile Veröffentlichung der Datenbank MariaDB 10.6

Nach einem Jahr Entwicklung und drei Vorabversionen wurde die erste stabile Version des neuen MariaDB-Datenbanksystems 10.6 veröffentlicht, in der eine Abspaltung von MySQL weiterentwickelt wird, die abwĂ€rtskompatibel bleibt und sich durch die Integration zusĂ€tzlicher Speicher-Engines und erweiterter Funktionen auszeichnet. Die UnterstĂŒtzung dieser neuen Version wird fĂŒnf Jahre lang bis Juli 2026 bereitgestellt.

Die Entwicklung von MariaDB wird von der unabhĂ€ngigen Organisation MariaDB Foundation gemĂ€ĂŸ einem vollkommen offenen und transparenten Entwicklungsprozess geleitet, der unabhĂ€ngig von einzelnen Herstellern erfolgt. MariaDB wird als Ersatz fĂŒr 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.

Wesentliche Verbesserungen in MariaDB 10.6:

  • Die AtomaritĂ€t der AusfĂŒhrung der AusdrĂŒcke „CREATE TABLE|VIEW|SEQUENCE|TRIGGER“, „ALTER TABLE|SEQUENCE“, „RENAME TABLE|TABLES“, „DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE“ ist sichergestellt (entweder wird der Ausdruck vollstĂ€ndig abgeschlossen, oder alles wird in den ursprĂŒnglichen Zustand zurĂŒckversetzt). Bei den „DROP TABLE“-Operationen, die mehrere Tabellen auf einmal löschen, wird die AtomaritĂ€t auf Ebene jeder einzelnen Tabelle gewĂ€hrleistet. Ziel der Änderung ist es, die IntegritĂ€t im Falle eines Absturzes wĂ€hrend der AusfĂŒhrung der Operation sicherzustellen. Server FrĂŒher konnten nach einem Absturz temporĂ€re Tabellen und Dateien verbleiben, die Synchronisation der Tabellen in den Speicher-Engines und den frm-Dateien könnte gestört werden, und einzelne Tabellen blieben beim Umbenennen mehrerer Tabellen unbenannt. Die IntegritĂ€t wird durch die FĂŒhrung eines Wiederherstellungsprotokolls gewĂ€hrleistet, dessen Pfad ĂŒber die neue Option „—log-ddl-recovery=Datei“ (standardmĂ€ĂŸig ddl-recovery.log) festgelegt werden kann.
  • Die in SQL 2008 definierte Syntax „SELECT 
 OFFSET 
 FETCH“ wurde implementiert, die es ermöglicht, eine bestimmte Anzahl von Zeilen ab einem angegebenen Offset auszugeben, wobei der Parameter „WITH TIES“ verwendet werden kann, um einen weiteren nachfolgenden Wert anzuhĂ€ngen. Beispielsweise gibt der Ausdruck „SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES“ im Vergleich zur Konstruktion „SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1“ ein zusĂ€tzliches Element, das am Ende folgt, aus (es werden anstelle von 3 insgesamt 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 eine Ă€hnliche FunktionalitĂ€t als „unsichtbare Indizes“ bezeichnet). Das Markieren eines Index zum Ignorieren erfolgt mithilfe des Flags IGNORED in der Anweisung „ALTER TABLE“, wobei der Index sichtbar und aktualisierbar bleibt, jedoch vom Optimierer nicht verwendet wird.
  • Die Funktion JSON_TABLE() wurde hinzugefĂŒgt, die dazu dient, JSON-Daten in relationale Formate umzuwandeln. Beispielsweise kann ein JSON-Dokument zur Verwendung im Kontext einer Tabelle umgewandelt werden, die im FROM-Block einer SELECT-Anweisung angegeben werden kann.
  • Die KompatibilitĂ€t mit Oracle DBMS wurde verbessert: UnterstĂŒtzung anonymer Unterabfragen im FROM-Block hinzugefĂŒgt. Die MINUS-Konstruktion (Äquivalent zu EXCEPT) wurde implementiert. Funktionen wie ADD_MONTHS(), TO_CHAR(), SYS_GUID() und ROWNUM() wurden hinzugefĂŒgt.
  • Die EinfĂŒgung in leere Tabellen wurde im InnoDB-Engine beschleunigt. Das Format fĂŒr kompakte Zeilen wurde standardmĂ€ĂŸig in den Nur-Lese-Modus versetzt. Das Schema SYS_TABLESPACES ersetzt SYS_DATAFILES und spiegelt den Status im Dateisystem direkt wider. FĂŒr temporĂ€re TabellenrĂ€ume wurde die UnterstĂŒtzung fĂŒr verzögertes Schreiben bereitgestellt. Die UnterstĂŒtzung fĂŒr den alten Checksumme-Algorithmus, der fĂŒr die KompatibilitĂ€t mit MariaDB 5.5 beibehalten wurde, wurde eingestellt.
  • Im Replikationssystem wurde die GrĂ¶ĂŸe des Parameters master_host von 60 auf 255 Zeichen und master_user auf 128 Zeichen erhöht. Es wurde die Variable binlog_expire_logs_seconds hinzugefĂŒgt, um die Verfallszeit des BinĂ€rlogs in Sekunden festzulegen (zuvor wurde die RĂŒcksetzzeit nur in Tagen ĂŒber die Variable expire_logs_days definiert).
  • Im Mechanismus der synchronen Multi-Master-Replikation Galera wurde die Variable wsrep_mode zur Anpassung der API WSREP (Write Set REPlication) Parameter implementiert. Der Übergang von Galera von unverschlĂŒsselten Kommunikationen zu TLS ohne Unterbrechung des Clusters wurde erlaubt.
  • Das Schema sys-schema wurde implementiert, in dem eine Sammlung von Ansichten, Funktionen und Prozeduren zur Analyse von Datenbankoperationen zusammengestellt wurde.
  • Hilfstabellen zur Analyse der Replikationsleistung wurden hinzugefĂŒgt.
  • Zu den InformationssĂ€tzen wurden die Ansichten INFORMATION_SCHEMA.KEYWORDS und INFORMATION_SCHEMA.SQL_FUNCTIONS hinzugefĂŒgt, die eine Liste der verfĂŒgbaren SchlĂŒsselwörter und Funktionen ausgeben.
  • Die TokuDB- und CassandraSE-Speicher wurden entfernt.
  • Die Codierung utf8 wurde von der vierbyteffizienten Darstellung utf8mb4 (U+0000..U+10FFFF) auf die dreibyteffiziente Darstellung utf8mb3 (deckt den Unicode-Bereich U+0000..U+FFFF ab) umgestellt.
  • Die UnterstĂŒtzung fĂŒr die Aktivierung ĂŒber Sockets in systemd wurde hinzugefĂŒgt.
  • Im GSSAPI-Plugin wurde die UnterstĂŒtzung fĂŒr Active Directory-Gruppennamen und SID hinzugefĂŒgt.
  • Die ÜberprĂŒfung der Konfiguration des Datei $MARIADB_HOME/my.cnf wurde zusĂ€tzlich zu $MYSQL_HOME/my.cnf hinzugefĂŒgt.
  • Neue Systemvariablen wurden implementiert: binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode und Innodb_buffer_pool_pages_lru_freed.

Quelle: opennet.ru

60GB SSD 8Gb DDR4