Ein neuer LTS-Zweig der Datenbank MariaDB 12.3 wurde veröffentlicht

Die Version der Datenbankmanagementsoftware MariaDB 12.3.2 wurde veröffentlicht und gilt als das erste stabile Release der 12.3-Serie. Die MariaDB 12.3-Serie ist als Version mit langfristigem Support eingestuft und wird bis Juni 2029 supportet. Gleichzeitig steht die Version MariaDB 13.0.1 zur Verfügung, die den Status einer Release-Kandidaten hat.

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 in der MariaDB 12.3-Serie im Vergleich zur vorherigen LTS-Version MariaDB 11.8 gehören:

  • Die Implementierung des binären Protokolls (binlog) wurde vollständig neu gestaltet; die Hauptkomponenten dafür wurden in die InnoDB-Engine übertragen. Diese Übertragung hat ermöglicht, die veraltete Synchronisierungslogik abzulegen, die Replikation zu beschleunigen und die Performance von datenschreibenden Operationen zu erhöhen. Während der Tests der neuen Implementierung in stark belasteten Systemen wurde ein Performancezuwachs von bis zu 4-fach bei einer hohen Anzahl von Schreiboperationen festgestellt. Zur Aktivierung ist die Einstellung „binlog_storage_engine=innodb“ vorgeschlagen.
  • Die Geschwindigkeit der vektorbasierten Suche wurde um 30-50% erhöht, indem der Typ VECTOR verwendet wird, der in maschinellen Lernsystemen eingesetzt wird. Die Beschleunigung wird durch die Optimierung von Berechnungen bei der Ähnlichkeitssuche zwischen Vektoren in mehrdimensionalen Räumen und die Implementierung einer neuen Extrapolationstechnik auf Basis von geschachtelten vektoriellen Darstellungen (matryoshka embedding) erreicht.
  • Es wurden Funktionen zur Vereinfachung der Migration von Oracle-Datenbanken hinzugefügt. Im Kompatibilitätsmodus mit Oracle-Datenbanken wurden die Funktionen TO_NUMBER (Umwandlung von Zeichenfolgen in Zahlen), TO_DATE (Umwandlung von Zeichenfolgen in Daten) und TRUNC (Trimmen von Daten, z.B. auf Stunde, Tag, Monat, Jahr) implementiert, ebenso wie die Unterstützung von assoziativen Arrays (INDEX BY) und die Syntax «( + )» zur Definition von äußeren Joins (outer joins).
  • Um die Kompatibilität mit MySQL zu erhöhen, wurde das Authentifizierungs-Plugin caching_sha2_password hinzugefügt, das den SHA2-Algorithmus anstelle von SHA1 zur Hashierung verwendet und mit dem gleichnamigen Plugin aus MySQL 9 kompatibel ist.
  • Ein neuer Typ XMLTYPE zum Speichern von Daten im XML-Format wurde hinzugefügt.
  • Die Möglichkeit zur Verwendung von Cursors mit parametrierten Abfragen (prepared statement) wurde implementiert.
  • Der Ausdruck „SET PATH“ wurde hinzugefügt, um die Reihenfolge der Suche nach Komponenten im Speicher-Schema festzulegen, wenn auf diese ohne Angabe des Schemanamens zugegriffen wird.
  • Die Unterstützung der Operation „IS JSON“ wurde implementiert, um den Typ eines JSON-Ausdrucks zu prüfen, der im SQL:2023-Standard definiert ist.
  • Im Ausdruck „PARTITION BY KEY“ wurde die Unterstützung für die Hash-Algorithmen MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 und XXH3 implementiert.
  • Im Aria-Speicher-Engine wurde ein segmentierter Schlüssel-Cache implementiert, bei dem Schlüssel in Gruppen aufgeteilt werden, die in separaten Cache-Segmenten gespeichert sind. Der neue Cache hat die Leistung der parallelen Ausführung von Anfragen durch verschiedene Benutzer erhöht. Die Anzahl der Segmente wird über die Variable aria_pagecache_segments festgelegt, die Werte von 1 (Standard) bis 128 annehmen kann.
  • Die Möglichkeit zur Nutzung von funktionsbasierten Indizes wurde hinzugefügt, um die Leistung von GROUP/ORDER BY-Operationen zu verbessern.
  • Die Unterstützung des Ausdrucks „CREATE GLOBAL TEMPORARY TABLE“ wurde implementiert, um globale temporäre Tabellen zu erstellen. Solche temporären Tabellen werden nach der Beendigung der Sitzung gelöscht und sind für alle Benutzer sichtbar, enthalten jedoch benutzerspezifische Daten.
  • Unterstützung für SSL-Schlüssel, die durch ein Passwort geschützt sind. Das Passwort zum Entsperren der SSL-Zertifikate kann über die Variable ssl_passphrase oder manuell beim Start festgelegt werden. сервера.
  • Der Befehl „SET SESSION AUTHORIZATION“ wurde hinzugefügt, um Aktionen unter einem anderen Benutzer auszuführen, sofern die entsprechenden Berechtigungen gewährt sind (dieser Befehl kann als Äquivalent zu „sudo“ für Datenbanken betrachtet werden).
  • Im Plugin file_key_management.so wurde die Unterstützung für SHA-2-Hashing hinzugefügt.
  • Die Unterstützung schwacher Cursorvariablen (weak cursor variable) des vordefinierten Typs SYS_REFCURSOR wurde hinzugefügt, die es ermöglichen, einen Cursor aus gespeicherten Prozeduren (im OUT-Parameter) oder aus Funktionen (in der RETURN-Anweisung) zurückzugeben. Um die maximale Anzahl gleichzeitig geöffneter Cursor zu begrenzen, wurde die systemweite Variable „max_open_cursors“ hinzugefügt.
  • Im Typ TO_CHAR wurde die Unterstützung des Formats FM (Fill Mode) hinzugefügt, um zusätzliche Auffüllungen auszuschließen. Zum Beispiel wird die Abfrage
    „SELECT CONCAT(‘/’, TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘/’);“ gibt „/Monday/“ anstelle von „/Monday /“ zurück.
  • Das Hilfsprogramm mariadb-check und der Ausdruck CHECK TABLE unterstützen jetzt Tabellen aus dem SEQUENCE-Engine.
  • Im Optimierer wurde die Unterstützung für Optionen (Hints) hinzugefügt, die das Erstellen von Optimierungsplänen beeinflussen: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, MAX_EXECUTION_TIME, [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, NO_ROWID_FILTER, INDEX_MERGE/NO_INDEX_MERGE, [NO_]DERIVED_CONDITION_PUSHDOWN und [NO_]MERGE. Die Optionen werden im Format eingefügt, das mit MySQL kompatibel ist, zum Beispiel:

    SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …;
    SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE …;

  • Die Leistung unordentlicher Ausdrücke bei 'LEFT JOIN' und geordneter Scans mit der Verwendung des Ausdrucks 'PARTITION BY RANGE' wurde verbessert.
  • Die Optimierungsergebnisse enthalten die Definitionen
    von Tabellen und Ansichten.
  • 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.
  • Die Skalierbarkeit von MDL (Metadata Lock) wurde verbessert.
  • Die Unterstützung neuer GIS-Funktionen (Geographic Information System) wurde hinzugefügt:
    ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect.
  • Unterstützung für Trigger hinzugefügt, die für mehrere Ereignisse ausgelöst werden. Im Ausdruck CREATE TRIGGER können jetzt die relevanten Ereignisse unter Verwendung der Syntax „{ event [ OR … ] }“ aufgelistet werden.
  • Im Audit-Logging-Plugin wurde die Unterstützung für das Puffern von Logeinträgen hinzugefügt. Die Größe des Puffers wird über die Variable server_audit_file_buffer_size festgelegt.
    Im Audit-Log wird nun auch die Information über Netzwerkports für eingehende Verbindungen aufgezeichnet (zuvor wurde nur der Host angezeigt).
  • Das Tool mariadb hat die Option „—script-dir“ hinzugefügt, um ein alternatives Verzeichnis für die Suche nach Skripten festzulegen, die durch den Befehl SOURCE ausgeführt werden.
  • Die Nutzung von paralleler Replikation bei der asynchronen Replikation von Daten zwischen zwei Galera-Clustern wurde erlaubt.
  • Das Tool mariadb-dump hat die Möglichkeit hinzugefügt, Masken (z.B. "database_*") über die Option "-L" (—wildcards) anzugeben.
  • Die Anforderung nach Einzigartigkeit von Identifikatoren für Fremdschlüssel (foreign key) im Kontext der gesamten Datenbank wurde entfernt; es genügt die Einzigartigkeit auf Tabellenebene.
  • 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.
  • Die Variablen big_tables, large_page_size und storage_engine, die zuvor als veraltet deklariert wurden, wurden entfernt.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster