Nach einem Jahr Entwicklung und vier Vorabversionen der erste stabile Release des neuen Zweigs der DBMS , im Rahmen dessen ein Fork von MySQL entwickelt wird, der die AbwĂ€rtskompatibilitĂ€t wahrt und durch die Integration zusĂ€tzlicher Storage-Engines und erweiterter Funktionen. Die UnterstĂŒtzung des neuen Zweigs wird fĂŒnf Jahre lang bis Juni 2025 bereitgestellt.
Die Entwicklung von MariaDB wird von der unabhĂ€ngigen Organisation MariaDB Foundation in Ăbereinstimmung mit einem vollstĂ€ndig offenen und transparenten Entwicklungsprozess geleitet, der unabhĂ€ngig von einzelnen Anbietern ist. MariaDB wird anstelle von MySQL in vielen Linux-Distributionen (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) bereitgestellt und ist in groĂen Projekten wie , und .
Hauptmerkmale :
- Eine Storage-Engine wurde hinzugefĂŒgt , die es ermöglicht, MariaDB-Tabellen in Amazon S3 oder in jedem anderen öffentlichen oder privaten Cloud-Speicher, der das S3-API unterstĂŒtzt, zu hosten. Sowohl regulĂ€re als auch partitionierte Tabellen werden in S3 unterstĂŒtzt. Bei der Ablage von partitionierten Tabellen in der Cloud können diese direkt von einem anderen Server mit Zugriff auf den S3-Speicher verwendet werden.
- Eine Storage-Engine wurde hinzugefĂŒgt , der Daten spaltenbasiert speichert und verteilte Architekturen verwendet. Die Engine basiert auf den Entwicklungen des MySQL-Speichers und dient der Organisation der Verarbeitung und AusfĂŒhrung analytischer Abfragen ĂŒber groĂe Datenmengen (Data Warehouse).
ColumnStore speichert Daten nicht zeilenweise, sondern spaltenweise, was die AusfĂŒhrung von Gruppierungen ĂŒber groĂe Datenbanktabellen mit Petabytes an Daten optimiert. Lineares Scaling, Datenspeicherung in komprimierter Form sowie vertikale und horizontale Partitionierung werden unterstĂŒtzt, ebenso wie effiziente AusfĂŒhrung konkurrierender Abfragen. - Alle ausfĂŒhrbaren Dateien, die mit dem Wort âmysqlâ beginnen, wurden umbenannt und verwenden das Wort âmariadbâ. Alte Namen wurden in Form von symbolischen Links beibehalten.
- Ein neuer Datentyp wurde hinzugefĂŒgt zur Speicherung von IPv6-Adressen.
- Es wurden Arbeiten zur Aufteilung der Berechtigungen in kleinere Komponenten ausgefĂŒhrt. Anstelle der allgemeinen Berechtigung SUPER wurde eine Reihe von selektiven Berechtigungen vorgeschlagen: âBINLOG ADMINâ,
âBINLOG REPLAYâ,
âCONNECTION ADMINâ,
âFEDERATED ADMINâ,
âREAD_ONLY ADMINâ,
âREPLICATION MASTER ADMINâ,
âREPLICATION SLAVE ADMINâ und
«BENUTZER FESTLEGEN». - Das Privileg âREPLICATION CLIENTâ wurde in âBINLOG MONITORâ umbenannt, und der Ausdruck âSHOW MASTER STATUSâ wurde in âSHOW BINLOG STATUSâ geĂ€ndert. Die Umbenennung prĂ€zisiert das Verhalten und steht nicht im Zusammenhang mit Political Correctness; das Projekt verweigert sich den Begriffen master/slave und hat sogar neue Privilegien âMASTER ADMINâ und âSLAVE ADMINâ hinzugefĂŒgt. Zudem wurde dem SQL-Ausdruck ein neuer SchlĂŒssel âREPLICAâ hinzugefĂŒgt, der ein Synonym fĂŒr âSLAVEâ ist.
- FĂŒr einige AusdrĂŒcke wurden die erforderlichen Privilegien fĂŒr ihre AusfĂŒhrung geĂ€ndert. âSHOW BINLOG EVENTSâ erfordert jetzt die Berechtigung âBINLOG MONITORâ anstelle von âREPLICATION SLAVEâ, âSHOW SLAVE HOSTSâ erfordert das Privileg âREPLICATION MASTER ADMINâ statt âREPLICATION SLAVEâ, âSHOW SLAVE STATUSâ erfordert die Berechtigungen âREPLICATION SLAVE ADMINâ oder âSUPERâ anstelle von âREPLICATION CLIENTâ, und âSHOW RELAYLOG EVENTSâ erfordert die Berechtigung âREPLICATION SLAVE ADMINâ statt âREPLICATION SLAVEâ.
- Konstruktionen wurden hinzugefĂŒgt â» und â«, die eine Liste der eingefĂŒgten/ersetzten Zeilen in einer Form zurĂŒckgeben, als ob die Werte durch die Verwendung des Ausdrucks SELECT zurĂŒckgegeben wurden (analog zu âDELETE ⊠RETURNINGâ).
INSERT INTO t2 VALUES (1, 'Hund'), (2, 'Löwe'), (3, 'Tiger'), (4, 'Leopard')
RETURNING id2, id2+id2, id2&id2, id2||id2;
+ââ+âââ+âââ+âââ-+
| id2 | id2+id2 | id2&id2 | id2||id2 |
+ââ+âââ+âââ+âââ-+
| 1 | 2 | 1 | 1 |
| 2 | 4 | 2 | 1 |
| 3 | 6 | 3 | 1 |
| 4 | 8 | 4 | 1 |
+ââ+âââ+âââ+âââ-+ - AusdrĂŒcke wurden hinzugefĂŒgt â» und â» zum AusschlieĂen/HinzufĂŒgen von Ergebnissen mit einer bestimmten Wertegruppe.
- Es besteht die Möglichkeit, Kommentare innerhalb der Blöcke âCREATE DATABASEâ und âALTER DATABASEâ anzugeben.
- Konstruktionen zum Umbenennen von Indizes und Spalten wurden hinzugefĂŒgt â» und â«.
- In der Operation âALTER TABLEâ und âRENAME TABLEâ wurde die UnterstĂŒtzung der Bedingung âIF EXISTSâ hinzugefĂŒgt, um die Operation nur durchzufĂŒhren, wenn die Tabelle existiert;
- FĂŒr Indizes in âCREATE TABLEâ wurde das Attribut â«.
- Der Ausdruck âCYCLEâ wurde hinzugefĂŒgt, um rekursive Zyklen zu identifizieren. .
- Funktionen wurden hinzugefĂŒgt und zur RĂŒckgabe eines Arrays oder Objekts von JSON mit Werten der angegebenen Spalte.
- Es wurden systeminformative Tabellen (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS und THREAD_POOL_WAITS) fĂŒr den Thread-Pool (thread_pool) hinzugefĂŒgt.
- Der Ausdruck ANALYZE wurde um die Anzeige der Zeit erweitert, die fĂŒr die ĂberprĂŒfung des WHERE-Blocks und die DurchfĂŒhrung unterstĂŒtzender Operationen benötigt wird.
- Im Optimierer der Bereichsverarbeitung wurden die Merkmale âIS NOT NULLâ berĂŒcksichtigt.
- Die GröĂe der temporĂ€ren Dateien, die bei der Sortierung mit den Typen VARCHAR, CHAR und BLOB verwendet werden, wurde erheblich reduziert.
- Im , das zur Organisation der Replikation verwendet wird, wurden neue Felder mit Metadaten hinzugefĂŒgt, einschlieĂlich Primary Key, Column Name, Character Set und Geometry Type. In dem Tool mariadb-binlog und den Befehlen âSHOW BINLOG EVENTSâ und âSHOW RELAYLOG EVENTSâ wird die Anzeige der Replikationsflags sichergestellt.
- Konstruktion jetzt zuverlĂ€ssig Tabellen, die im Speichermotor verbleiben, auch wenn die â.frmâ- oder â.parâ-Dateien fehlen.
- Eine hardwarebeschleunigte Version der Funktion crc32() wurde fĂŒr die CPU AMD64, ARMv8 und POWER 8 implementiert.
- Einige Standardwerte wurden geÀndert. Der Parameter innodb_encryption_threads wurde auf 255 erhöht, und der Wert von max_sort_length wurde von 4 auf 8 erhöht.
- Zahlreiche Leistungsoptimierungen fĂŒr den InnoDB-Speichermotor wurden eingefĂŒhrt.
- Im Mechanismus der synchronen Multi-Master-Replikation Galera wurde die vollstĂ€ndige UnterstĂŒtzung fĂŒr (Global Transaction ID), eindeutige Transaktionsidentifikatoren fĂŒr alle Knoten des Clusters, hinzugefĂŒgt.
- Der Ăbergang zur neuen Version der Bibliothek (Perl Compatible Regular Expressions) wurde anstelle der klassischen PCRE 8.x-Serie vorgenommen.
- Neue Versionen von Bindings zur Anbindung an die Datenbanksysteme MariaDB und MySQL aus Programmen in Python und C wurden angeboten: und . Die Bindings fĂŒr Python entsprechen dem Python DB API 2.0, sind in C geschrieben und verwenden die Bibliothek Connector/C fĂŒr die Verbindung zum Server.
Quelle: opennet.ru
