Po roku vývoja a troch predbežných vydaniach bol publikovaný prvý stabilný release novej vetvy databázového systému MariaDB 10.6, v rámci ktorej sa vyvíja odnož MySQL, zachovávajúca spätnú kompatibilitu a odlišujúca sa integráciou dodatočných úložných engineov a rozšírenými možnosťami. Podpora novej vetvy bude poskytovaná 5 rokov, do júla 2026.
Rozvoj MariaDB spravuje nezávislá organizácia MariaDB Foundation v súlade s úplne otvoreným a transparentným procesom vývoja, nezávislým od jednotlivých výrobcov. MariaDB sa dodáva namiesto MySQL v mnohých distribúciách Linuxu (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) a je implementovaná v takých veľkých projektoch, ako Wikipedia, Google Cloud SQL a Nimbuzz.
Kľúčové vylepšenia MariaDB 10.6:
- Zabezpečená atomickosť vykonávania výrazov „CREATE TABLE|VIEW|SEQUENCE|TRIGGER“, „ALTER TABLE|SEQUENCE“, „RENAME TABLE|TABLES“, „DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE“ (buď je výraz úplne dokončený, alebo sa všetko vracia do pôvodného stavu). V prípade operácií „DROP TABLE“, ktoré odstraňujú niekoľko tabuliek naraz, je atomickosť zabezpečená na úrovni každej jednotlivé tabuľky. Cieľom zmeny je zabezpečiť integritu v prípade pádu servera počas vykonávania operácie. Predtým, po páde, mohli zostávať dočasné tabuľky a súbory, narušovala sa synchronizácia tabuliek v úložných engineoch a frm-súboroch, zostávali premenované jednotlivé tabuľky pri premenovaní niekoľkých tabuliek naraz. Integrita sa zabezpečuje prostredníctvom vedenia protokolu obnovy stavu, ktorého cestu je možné určiť prostredníctvom novej možnosti „—log-ddl-recovery= súbor“ (predvolene ddl-recovery.log).
- Implementovaná bola konštrukcia definovaná v štandarde SQL 2008 „SELECT … OFFSET … FETCH“, umožňujúca vydať určité množstvo riadkov, začínajúc od zadaného posunu, s možnosťou využitia parametra „WITH TIES“ na pripojenie ďalšej nasledujúcej hodnoty. Napríklad výraz „SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES“ sa líši od konštrukcie „SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1“ tým, že vráti ešte jeden prvok, ktorý nasleduje na konci (namiesto 3 bude vrátených 4 riadky).
- Pre engine InnoDB bol implementovaný syntax „SELECT … SKIP LOCKED“, umožňujúci vylúčiť riadky, pre ktoré nie je možné nastaviť zámok („LOCK IN SHARE MODE“ alebo „FOR UPDATE“).
- Bol pribudol nový prístup na ignorovanie indexov (v MySQL 8 táto funkcia nazýva «neviditeľné indexy»). Označenie indexu na ignorovanie sa vykonáva pomocou príznaku IGNORED v príkaze «ALTER TABLE», po čom index zostáva viditeľný a aktualizovaný, ale nie je používaný optimalizátorom.
- Pridala sa funkcia JSON_TABLE(), určená na prevod údajov JSON do relačnej formy. Napríklad, dokument JSON môže byť prevedený na použitie v kontexte tabuľky, ktorá môže byť špecifikovaná vo vnútri bloku FROM v príkaze SELECT.
- Vylepšená kompatibilita so systémom správy databáz Oracle: Pridala sa podpora anonymných poddotazov vo vnútri bloku FROM. Realizovaná konštrukcia MINUS (ekvivalent EXCEPT). Pridané funkcie ADD_MONTHS(), TO_CHAR(), SYS_GUID() a ROWNUM().
- V engine InnoDB bola urýchlená vloženie do prázdnych tabuliek. Formát riadkov COMPRESSED bol predvolene preložený do režimu len na čítanie. Schéma SYS_TABLESPACES nahradila SYS_DATAFILES a priamo odráža stav v súborovom systéme. Pre dočasný priestor tabuliek bola zabezpečená podpora odloženej zápisu. Podpora starého algoritmu kontrolných súm, ktorý sa uchovával pre kompatibilitu s MariaDB 5.5, bola ukončená.
- V systéme replikácie bola zvýšená veľkosť hodnoty parametra master_host z 60 na 255 znakov, a master_user na 128. Pridaná premenná binlog_expire_logs_seconds na nastavenie času expirácie binárneho logu v sekundách (predtým bol čas resetovania určovaný iba v dňoch cez premennú expire_logs_days).
- V mechanizme synchronnej multi-master replikácie Galera bola implementovaná premenná wsrep_mode na nastavenie parametrov API WSREP (Write Set REPlication). Bola povolená migrácia Galera z nezašifrovanej komunikácie na použitie TLS bez zastavenia klastrov.
- Bol vyvinutý schéma sys-schema, v ktorej je zhromaždená kolekcia pohľadov, funkcií a procedúr na analýzu operácií s databázou.
- Pridané pomocné tabuľky na analýzu výkonnosti replikácie.
- Do súboru informačných tabuliek boli pridané pohľady INFORMATION_SCHEMA.KEYWORDS a INFORMATION_SCHEMA.SQL_FUNCTIONS, ktoré vypisujú zoznam dostupných kľúčových slov a funkcií.
- Odstránené úložiská TokuDB a CassandraSE.
- Kódovanie utf8 bolo preložené zo štvobbajtového zobrazenia utf8mb4 (U+0000..U+10FFFF) na trojbajtové utf8mb3 (pokryje rozsah Unicode U+0000..U+FFFF).
- Pridala sa podpora aktivácie prostredníctvom socketu v systemd.
- V plugine GSSAPI bola pridaná podpora názvov skupín Active Directory a SID.
- Pridaná kontrola existencie konfiguračného súboru $MARIADB_HOME/my.cnf spolu s $MYSQL_HOME/my.cnf.
- Realizované nové systémové premenné binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode a Innodb_buffer_pool_pages_lru_freed.
Zdroj: opennet.ru
