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. Server.
  • 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

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster