Efter et års udvikling og fire forudgående udgivelser den første stabile udgivelse af den nye databaseversion , hvor der udvikles en aflægger af MySQL, der bevarer bagudkompatibilitet og integration af ekstra lagringsmotorer og udvidede muligheder. Understøttelse af den nye gren vil blive leveret i 5 år, frem til juni 2025.
Udviklingen af MariaDB overvåges af den uafhængige organisation MariaDB Foundation i overensstemmelse med en helt åben og gennemsigtig udviklingsproces, der ikke er afhængig af individuelle producenter. MariaDB leveres i stedet for MySQL i mange Linux-distributioner (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) og er implementeret i store projekter som , og .
Nøglepunkter :
- Lagringsmotoren , som gør det muligt at placere MariaDB-tabeller i Amazon S3 eller enhver anden offentlig eller privat cloud-lagring, der understøtter S3 API. Understøttelse af placering i S3 både af almindelige og partitionerede tabeller. Når der placeres partitionerede tabeller i skyen, kan de bruges direkte, herunder fra en anden server, der har adgang til S3-lagringen.
- Lagringsmotoren , som lagrer data bundet til kolonner og bruger fordelt arkitektur. Motoren er baseret på MySQL-lagringsmetoden og er designet til at organisere behandling og udførelse af analytiske forespørgsler på store datamængder (Data Warehouse).
ColumnStore lagrer data ikke række for række, men opdelt efter kolonner, hvilket gør det muligt at optimere udførelsen af gruppering efter kolonner fra store databaser, der inkluderer petabyte data. Lineær skalering, lagring af data i komprimeret form, vertikal og horisontal partitionering, samt effektiv udførelse af konkurrerende forespørgsler understøttes. - Alle eksekverbare filer, der begynder med ordet «mysql», er blevet omdøbt med brug af ordet «mariadb». De gamle navne er bevaret som symbolske links.
- En ny datatype er blevet tilføjet til opbevaring af IPv6-adresser.
- Der er gjort arbejde på at opdele privilegierne i mindre enheder. I stedet for det generelle privilegium SUPER er der foreslået en række selektive privilegier som «BINLOG ADMIN»,
«BINLOG REPLAY»,
«CONNECTION ADMIN»,
«FEDERATED ADMIN»,
«READ_ONLY ADMIN»,
«REPLICATION MASTER ADMIN»,
«REPLICATION SLAVE ADMIN» og
«SET USER». - Privilegiet „REPLICATION CLIENT“ er blevet omdøbt til „BINLOG MONITOR“, og udtrykket „SHOW MASTER STATUS“ er nu „SHOW BINLOG STATUS“. Omdøbningen præciserer adfærden og er ikke relateret til politisk korrekthed; projektet fraskriver sig ikke termer som master/slave og har endda tilføjet nye privilegier „MASTER ADMIN“ og „SLAVE ADMIN“. Desuden er der i SQL-udtrykket tilføjet en ny nøgle „REPLICA“, som er et synonym for „SLAVE“.
- For nogle udtryk er de nødvendige privilegier til udførelse blevet ændret. „SHOW BINLOG EVENTS“ kræver nu „BINLOG MONITOR“ rettigheder i stedet for „REPLICATION SLAVE“, „SHOW SLAVE HOSTS“ kræver privilegierne „REPLICATION MASTER ADMIN“ i stedet for „REPLICATION SLAVE“, „SHOW SLAVE STATUS“ kræver „REPLICATION SLAVE ADMIN“ eller „SUPER“ rettigheder i stedet for „REPLICATION CLIENT“, og „SHOW RELAYLOG EVENTS“ kræver „REPLICATION SLAVE ADMIN“ privilegier i stedet for „REPLICATION SLAVE“.
- Følgende konstruktioner er blevet tilføjet:" og "„”, der returnerer en liste over indsatte/erstatte rækker i formen, som hvis værdier blev returneret ved brug af SELECT-udtrykket (analogt med „DELETE … RETURNING“).
INSERT INTO t2 VALUES (1, 'Dog'), (2, 'Lion'), (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 |
+——+———+———+———-+ - Der er tilføjet udtryk:" og "„ for at udelukke/tilføje resultatet af et bestemt sæt værdier.
- Det er nu muligt at angive kommentarer inden for „CREATE DATABASE“ og „ALTER DATABASE“ blokke.
- Konstruktioner til omdøbning af indekser og kolonner er blevet tilføjet:» og ««.
- I operationerne „ALTER TABLE“ og „RENAME TABLE“ er der tilføjet understøttelse af betingelsen „IF EXISTS“ for at udføre operationen kun hvis tabellen eksisterer;
- For indekser i „CREATE TABLE“ er attributten „«.
- Der er tilføjet et udtryk „CYCLE“ til identifikation af rekursive cykler. .
- Der er tilføjet funktioner: og for at returnere et array eller objekt JSON med værdierne fra den angivne kolonne.
- Der er tilføjet systeminformations-tabeller (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS og THREAD_POOL_WAITS) til trådpoolen (thread_pool).
- ANALYZE-udtrykket er blevet udvidet til at vise den tid, der bruges til at kontrollere WHERE-blokken og udføre hjælpeoperationer.
- I optimeringsprocessen for intervalhævdninger er betingelsen „IS NOT NULL“ blevet taget i betragtning.
- Størrelsen af midlertidige filer, der bruges ved sortering med typerne VARCHAR, CHAR og BLOB, er væsentligt reduceret.
- I , der bruges til at organisere replikering, er der tilføjet nye metafelter, herunder Primary Key, Column Name, Character Set og Geometry Type. I værktøjet mariadb-binlog og kommandoerne 'SHOW BINLOG EVENTS' og 'SHOW RELAYLOG EVENTS' vises replikationsflager.
- Konstruktion er nu pålideligt tabeller, der forbliver i lagermotoren, selv uden 'frm' eller 'par' filer.
- Der er implementeret en hardwareaccelereret version af funktionen crc32() for CPU'er AMD64, ARMv8 og POWER 8.
- Nogle standardindstillinger er ændret. Indstillingen innodb_encryption_threads er steget til 255, og værdien for max_sort_length er øget fra 4 til 8.
- Der er blevet præsenteret mange ydeevneoptimeringer for InnoDB-motoren.
- Der er tilføjet fuld understøttelse til synkron multi-master replikation i Galera (Global Transaction ID), der er fælles for alle noder i klyngen af transaktionsidentifikatorer.
- Der er blevet skiftet til en ny version af biblioteket (Perl Compatible Regular Expressions), i stedet for den klassiske serie PCRE 8.x.
- Der er foreslået nye versioner af bindingsbiblioteker til tilslutning til databaserne MariaDB og MySQL fra programmer skrevet i Python og C: og . Bindingen til Python overholder Python DB API 2.0, er skrevet i C og bruger biblioteket Connector/C til forbindelse til serveren.
Kilde: opennet.ru
