Stabile Version von MariaDB 10.6

Nach einem Jahr Entwicklungszeit und drei Vorabversionen wurde die erste stabile Version des neuen Zweigs des MariaDB 10.6 DBMS veröffentlicht, innerhalb dessen ein Zweig von MySQL entwickelt wird, der Abwärtskompatibilität beibehält und sich durch die Integration zusätzlicher Speicher-Engines auszeichnet und erweiterte Funktionen. Die Unterstützung für die neue Niederlassung erfolgt für 5 Jahre, bis Juli 2026.

Die MariaDB-Entwicklung wird von der unabhängigen MariaDB Foundation überwacht und folgt einem völlig offenen und transparenten Entwicklungsprozess, der unabhängig von einzelnen Anbietern ist. MariaDB wird als Ersatz für MySQL in vielen Linux-Distributionen (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) mitgeliefert und wurde in so großen Projekten wie Wikipedia, Google Cloud SQL und Nimbuzz implementiert.

Wichtige Verbesserungen in MariaDB 10.6:

  • Die atomare Ausführung der Ausdrücke „CREATE TABLE|VIEW|SEQUENCE|TRIGGER“, „ALTER TABLE|SEQUENCE“, „RENAME TABLE|TABLES“, „DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE“ ist gewährleistet (entweder der Ausdruck ist komplett fertiggestellt oder alles in seinen ursprünglichen Zustand zurückversetzt). Bei „DROP TABLE“-Operationen, die mehrere Tabellen auf einmal löschen, wird die Atomizität auf der Ebene jeder einzelnen Tabelle gewährleistet. Der Zweck der Änderung besteht darin, die Integrität im Falle eines Serverabsturzes während eines Betriebs sicherzustellen. Bisher konnten nach einem Absturz temporäre Tabellen und Dateien verbleiben, die Synchronisierung von Tabellen in Speicher-Engines und Frm-Dateien konnte unterbrochen werden und einzelne Tabellen konnten unbenannt bleiben, wenn mehrere Tabellen gleichzeitig umbenannt wurden. Die Integrität wird durch die Führung eines Statuswiederherstellungsprotokolls gewährleistet, dessen Pfad über die neue Option „—log-ddl-recovery=file“ (standardmäßig ddl-recovery.log) bestimmt werden kann.
  • Die im SQL 2008-Standard definierte Konstruktion „SELECT ... OFFSET ... FETCH“ wurde implementiert und ermöglicht die Anzeige einer bestimmten Anzahl von Zeilen ab einem angegebenen Offset mit der Möglichkeit, den Parameter „WITH TIES“ zu verwenden Fügen Sie einen weiteren nächsten Wert hinzu. 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“ durch die Ausgabe eines weiteren Elements im Ende (Statt 3 werden 4 Zeilen gedruckt).
  • 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). Das Markieren eines Index zum Ignorieren erfolgt mithilfe des IGNORED-Flags in der ALTER TABLE-Anweisung. Danach bleibt der Index sichtbar und aktualisiert, wird jedoch vom Optimierer nicht verwendet.
  • Funktion JSON_TABLE() hinzugefügt, um JSON-Daten in relationale Form zu konvertieren. Beispielsweise kann ein JSON-Dokument zur Verwendung im Kontext einer Tabelle transformiert werden, die in einem FROM-Block in einer SELECT-Anweisung angegeben werden kann.
  • Verbesserte Kompatibilität mit Oracle DBMS: Unterstützung für anonyme Unterabfragen innerhalb des FROM-Blocks hinzugefügt. Das MINUS-Konstrukt wurde implementiert (entspricht EXCEPT). Funktionen ADD_MONTHS(), TO_CHAR(), SYS_GUID() und ROWNUM() hinzugefügt.
  • In der InnoDB-Engine wurde das Einfügen in leere Tabellen beschleunigt. Das COMPRESSED-String-Format ist standardmäßig auf den schreibgeschützten Modus eingestellt. Das SYS_TABLESPACES-Schema ersetzte SYS_DATAFILES und spiegelt direkt den Status im Dateisystem wider. Für den temporären Tabellenbereich wird Lazy-Write-Unterstützung bereitgestellt. Die Unterstützung für den alten Prüfsummenalgorithmus, der aus Kompatibilitätsgründen mit MariaDB 5.5 beibehalten wurde, wurde eingestellt.
  • Im Replikationssystem wurde die Größe des Parameterwerts master_host von 60 auf 255 Zeichen und von master_user auf 128 erhöht. Die Variable binlog_expire_logs_seconds wurde hinzugefügt, um die Ablaufzeit des Binärprotokolls in Sekunden zu konfigurieren (zuvor betrug die Rücksetzzeit). wird nur in Tagen durch die Variable „expire_logs_days“ bestimmt.
  • Der synchrone Multi-Master-Replikationsmechanismus von Galera implementiert die Variable wsrep_mode, um die WSREP-API-Parameter (Write Set REPlication) zu konfigurieren. Ermöglichte die Konvertierung von Galera von unverschlüsselter Kommunikation zu TLS, ohne den Cluster zu stoppen.
  • Es wurde das Schema sys-schema implementiert, das eine Sammlung von Ansichten, Funktionen und Prozeduren zur Analyse von Datenbankoperationen enthält.
  • Diensttabellen zur Analyse der Replikationsleistung hinzugefügt.
  • Die Ansichten INFORMATION_SCHEMA.KEYWORDS und INFORMATION_SCHEMA.SQL_FUNCTIONS wurden dem Satz von Informationstabellen hinzugefügt und zeigen eine Liste der verfügbaren Schlüsselwörter und Funktionen an.
  • TokuDB- und CassandraSE-Repositorys wurden entfernt.
  • Die utf8-Kodierung wurde von der Vier-Byte-Darstellung utf8mb4 (U+0000..U+10FFFF) auf die Drei-Byte-Darstellung utf8mb3 verschoben (deckt den Unicode-Bereich U+0000..U+FFFF ab).
  • Unterstützung für Socket-Aktivierung in systemd hinzugefügt.
  • Das GSSAPI-Plugin bietet Unterstützung für Active Directory-Gruppennamen und SIDs.
  • Überprüfung auf Vorhandensein der Konfigurationsdatei $MARIADB_HOME/my.cnf zusätzlich zu $MYSQL_HOME/my.cnf hinzugefügt.
  • Neue Systemvariablen binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode und Innodb_buffer_pool_pages_lru_freed wurden implementiert.

Source: opennet.ru

Kommentar hinzufügen