Nakon godine dana razvoja i tri preliminarna izdanja, objavljeno je prvo stabilno izdanje nove verzije SDB-a MariaDB 10.6, koja se razvija kao fork MySQL-a, zadržavajući unazad kompatibilnost i ističući se integracijom dodatnih skladišnih motora i proširenim mogućnostima. Podrška za novu verziju trajat će 5 godina, do srpnja 2026. godine.
Razvoj MariaDB nadgleda neovisna organizacija MariaDB Foundation u skladu s potpuno otvorenim i transparentnim procesom razvoja, neovisnim o pojedinim proizvođačima. MariaDB se isporučuje umjesto MySQL-a u mnogim Linux distribucijama (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) i implementirana je u velikim projektima kao što su Wikipedia, Google Cloud SQL i Nimbuzz.
Ključna poboljšanja MariaDB 10.6:
- Osigurana je atomarnost izvođenja izraza "CREATE TABLE|VIEW|SEQUENCE|TRIGGER", "ALTER TABLE|SEQUENCE", "RENAME TABLE|TABLES", "DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE" (ili je izraz potpuno dovršen, ili se sve vraća u prvotno stanje). U slučaju operacija "DROP TABLE" koje brišu više tablica odjednom, atomarnost se osigurava na razini svake pojedine tablice. Cilj promjene je osigurati cjelovitost u slučaju pada tijekom izvođenja operacije. Prije, nakon pada su mogle ostati privremene tablice i datoteke, doći do nesinkronizacije tablica u skladišnim motorima i frm-datotekama, te ostati nepreimenovane pojedine tablice prilikom preimenovanja više tablica odjednom. Cjelovitost se osigurava vođenjem dnevnika oporavka stanja, čiji put se može odrediti novom opcijom "—log-ddl-recovery=datoteka" (po zadano ddl-recovery.log). poslužitelja Implementirana je konstrukcija "SELECT … OFFSET … FETCH" definirana u SQL standardu 2008, koja omogućava ispis određenog broja redaka počevši od određenog pomaka, uz mogućnost korištenja parametra "WITH TIES" za pridruživanje još jednog sljedećeg vrijednosti. Na primjer, izraz "SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES" razlikuje se od konstrukcije "SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1" ispisom još jednog elementa, koji dolazi na kraju (umjesto 3, bit će ispisano 4 retka).
- Za InnoDB motor implementirana je sintaksa "SELECT … SKIP LOCKED", koja omogućava isključivanje redaka za koje ne može biti postavljena blokada ("LOCK IN SHARE MODE" ili "FOR UPDATE").
- Za InnoDB motor implementirana je sintaksa "SELECT … SKIP LOCKED", koja omogućava isključivanje redaka, za koje ne može biti postavljena blokada ("LOCK IN SHARE MODE" ili "FOR UPDATE").
- Uvedena je mogućnost ignoriranja indeksa (u MySQL 8 takva funkcionalnost se naziva "nevidljivi indeksi"). Označavanje indeksa za ignoriranje vrši se pomoću oznake IGNORED u izrazu "ALTER TABLE", nakon čega indeks ostaje vidljiv i ažuriran, ali se ne koristi od strane optimizatora.
- Dodana je funkcija JSON_TABLE(), namijenjena za pretvaranje podataka JSON u relacijski oblik. Na primjer, JSON dokument može se pretvoriti za korištenje u kontekstu tablice koja se može navesti unutar bloka FROM u izrazu SELECT.
- Poboljšana je kompatibilnost s DBMS Oracle: Dodana je podrška za anonimne podupite unutar bloka FROM. Implementirana je konstrukcija MINUS (ekvivalent EXCEPT). Dodane su funkcije ADD_MONTHS(), TO_CHAR(), SYS_GUID() i ROWNUM().
- U InnoDB motoru ubrzana je umetanje u prazne tablice. Format redaka COMPRESSED prema zadanim postavkama prebačen je u način rada samo za čitanje. Shema SYS_TABLESPACES zamijenila je SYS_DATAFILES i izravno odražava stanje u datotečnom sustavu. Za privremeni tablični prostor osigurana je podrška za odgođeno pisanje. Prekinuta je podrška za staru kontrolu sumu, koja se zadržavala radi kompatibilnosti s MariaDB 5.5.
- U sustavu replikacije, veličina parametra master_host povećana je s 60 na 255 znakova, a master_user na 128. Dodana je varijabla binlog_expire_logs_seconds za podešavanje vremena isteka binarnog loga u sekundama (ranije je vrijeme resetiranja bilo određeno samo u danima putem varijable expire_logs_days).
- U mehanizmu sinkrone multi-master replikacije Galera implementirana je varijabla wsrep_mode za podešavanje parametara API WSREP (Write Set REPlication). Omogućeno je prebacivanje Galera s nezaštićenih komunikacija na upotrebu TLS-a bez zaustavljanja klastera.
- Implementirana je shema sys-schema, u kojoj je prikupljena kolekcija prikaza, funkcija i procedura za analizu operacija s bazom podataka.
- Dodane su pomoćne tablice za analizu performansi replikacije.
- U skup informativnih tablica dodani su prikazi INFORMATION_SCHEMA.KEYWORDS i INFORMATION_SCHEMA.SQL_FUNCTIONS, koji prikazuju popis dostupnih ključnih riječi i funkcija.
- Uklonjena su skladišta TokuDB i CassandraSE.
- Kodiranje utf8 prebačeno je s četverobajtne predstave utf8mb4 (U+0000..U+10FFFF) na trojbajtno utf8mb3 (pokriva raspon Unicode U+0000..U+FFFF).
- Dodana je podrška za aktivaciju putem socketa u systemd.
- U GSSAPI dodatku dodana je podrška za imena grupa Active Directory i SID.
- Dodana je provjera postojanja konfiguracijske datoteke $MARIADB_HOME/my.cnf uz $MYSQL_HOME/my.cnf.
- Implementirane su nove sistemske varijable binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode i Innodb_buffer_pool_pages_lru_freed.
Izvor: opennet.ru
