Od ledna 2022 zavedla ClusterControl v1.9.2 podporu pro nejnovější verzi MariaDB – verzi 10.6. MariaDB 10.6, vydaná v červenci 2021, bude podporována po další čtyři roky nebo přesně do července 2026.
V tomto příspěvku zdůrazníme nejlepší funkce MariaDB 10.6.
Atomický DDL (Data Definition Language)
První funkcí, kterou se budeme zabývat, je atomový DDL. Podle definice „atomový“ znamená, že operace je úspěšná a je zaprotokolována do binárních protokolů, nebo je zcela obrácená. Počínaje MariaDB 10.6.1 vylepšila MariaDB čitelnost operací DDL tím, že většinu z nich udělala atomickou, zatímco zbytek je bezpečný, i když se server při provádění jakékoli operace zhroutí. Jak Atomic, tak Crash-safe byly vyvinuty tak, aby fungovaly se všemi úložnými enginy, kromě úložného enginu S3 a rozdělovacího enginu, na kterých se stále pracuje.
V této verzi jsou nyní příkazy ALTER TABLE, RENAME TABLE, CREATE TABLE, DROP TABLE, DROP DATABASE a jejich související příkazy DDL připraveny pro atomy. Kompletní seznam dalších operací Atomic DDL naleznete zde. Skvělá věc na nové atomické implementaci a bezpečné při havárii je, že server MariaDB se stal mnohem stabilnější, nemluvě o spolehlivosti, a to i v nestabilních prostředích.
Syntaxe SQL
Pokud jde o kategorii syntaxe SQL, bylo přidáno několik nových funkcí. První, kterou uvidíme, je:
VYBRAT ... OFFSET ... NAČÍST
Klauzule OFFSET nám umožní vrátit pouze ty segmenty sady výsledků, které dorazí po definovaném offsetu. Na druhou stranu klauzule FETCH omezuje počet vrácených řádků. Ať už se jedná o řádky v jednotném nebo množném čísle, obě lze použít za klauzulemi OFFSET a FETCH, protože nemají žádný vliv na výsledky.
SKIP UZAMČENO
Možná někteří z nás znají tuto syntaxi, protože byla importována a upravena z MySQL. Pomocí SKIP LOCKED jsme mohli přeskočit jakékoli uzamčené ŘÁDKY při provádění operací SELECT nebo UPDATE. Je to rozhodně užitečná funkce, zejména pro aplikace, které umožňují více uživatelům rezervovat omezené zdroje, jako jsou hotelové pokoje, sedadla v letadle, vstupenky na koncerty atd.
Ignorované indexy
Ignorované indexy jsou podobné funkci „neviditelných indexů“ v MySQL 8. Jakékoli indexy, které jsou viditelné a spravované, ale nejsou používány optimalizátorem, lze definovat jako ignorované indexy. To může být velmi užitečné při testování, abyste viděli, co se vynoří, když index upustíme, než jej skutečně zahodíme. V případě, že se objeví jakýkoli problém, můžeme jej okamžitě znovu aktivovat (označením indexu IGNORED/NOT IGNORED).
JSON_TABLE
Tato funkce tabulky je také importována z MySQL, kde by mohla transformovat data nebo dokumenty JSON do relační podoby. V této verzi MariaDB povolila zobrazení tabulky do dat JSON uložených v databázi MariaDB a pomocí SQL se budou všechny dotazy vracet jako běžná tabulka.
Kompatibilita s Oracle
MariaDB byla průkopníkem ve světě databází s otevřeným zdrojovým kódem, který přidal kompatibilitu s PL/SQL. Počínaje MariaDB 10.3 bylo přidáno mnoho syntaxí a funkcí pro usnadnění migrace z Oracle na MariaDB. Pokud jde o MariaDB 10.6, jsou zavedeny následující funkce, aby byla MariaDB více kompatibilní s PL/SQL:
-
Anonymní poddotazy v klauzuli FROM (bez klauzule AS) jsou povoleny v režimu ORACLE
-
ADD_MONTHS() přidáno
-
funkce pro přičítání/odečítání měsíců od dané hodnoty data.
-
-
Přidáno TO_CHAR()
-
podporuje NUMBER, DATE, DATETIME, TIMESTAMP atd. jako parametry a vrací formátovanou/převedenou hodnotu TEXT
-
-
Přidáno SYS_GUID()
-
podobné funkci UUID v MariaDB
-
-
MINUS je v UNION mapován na EXCEPT
-
Funkce ROWNUM vrací aktuální počet přijatých řádků v aktuálním kontextu
Replikace, Galera a Binlog
V této kategorii MariaDB zavedla binlog_expire_logs_seconds jako formu aliasu pro expire_logs_days, což znamená, že jakékoli změny kteréhokoli z nich se automaticky projeví v druhém. Kromě toho binlog_expire_logs_seconds přijímá přesnost 1/1000000 dnů. To je výjimečně užitečné při vysokoobjemových zápisech na master a když má prostředí omezené místo na disku.
Kromě toho MariaDB zavedla také systémové proměnné wsrep_mode. Tato proměnná umožňuje funkce WSREP, které nejsou součástí výchozího chování, jako je BINLOG_ROW_FORMAT_ONLY, DISALLOW_LOCAL_GTID, REQUIRED_PRIMARY_KEY, REPLICATE_ARIA, REPLICATE_MYISAM, STRICT_REPLICATION.
Schéma sys
Další funkcí je sys_schema, kolekce pohledů, funkcí a procedur. Není pochyb o tom, že sys_schema pomáhá správcům databází a vývojářům mnoha způsoby při interpretaci dat; dalo by se z něj získat mnoho informací a diagnostických informací. sys_schema se nepoužívá pouze při odstraňování problémů s výkonem, ale také pomáhá při efektivní správě zdrojů. Naštěstí je to nyní dostupné v MariaDB 10.6.
Informační schéma
Nově přidanou funkcí v této kategorii jsou INFORMATION_SCHEMA.KEYWORDS a INFORMATION_SCHEMA.SQL_FUNCTIONS. Tabulka KEYWORDS obsahuje přibližně 694 řádků klíčových slov MariaDB, zatímco tabulka SQL_FUNCTIONS obsahuje přibližně 234 řádků funkcí MariaDB. S těmito dvěma tabulkami nyní můžeme získat informační schéma, které se k nim vztahuje, v případě, že je budeme potřebovat.
Zabalení
Kromě těchto nových funkcí představených v MariaDB 10.6 bylo provedeno mnoho dalších vylepšení, o kterých se v tomto příspěvku nemluví. I když mnoho z těchto funkcí bylo převzato z MySQL, tyto doplňky jsou pro uživatele stále velmi přínosné.
Jak již bylo zmíněno, ClusterControl aktuálně podporuje MariaDB 10.6. S ClusterControl můžete snadno upgradovat na nejnovější technologickou verzi bez stresu. Pokud ještě nejste obeznámeni s ClusterControl, můžete si jej vyzkoušet zdarma po dobu 30 dnů – bez nutnosti CC.
Chcete-li zůstat v obraze se všemi nejnovějšími novinkami a osvědčenými postupy pro nejoblíbenější databáze s otevřeným zdrojovým kódem, nezapomeňte nás sledovat na Twitteru a LinkedIn a přihlaste se k odběru novinek pro aktualizace.