Byla vydána nová LTS větev databáze MariaDB 12.3

Byla představena verze databázového systému MariaDB 12.3.2, která je označena jako první stabilní vydání větve 12.3. Větev MariaDB 12.3 je zařazena mezi vydání s dlouhodobou podporou a bude udržována do června 2029. Současně je k dispozici verze MariaDB 13.0.1, která má status kandidáta na vydání.

Projekt MariaDB vyvíjí odvozenou verzi od MySQL, která zachovává zpětnou kompatibilitu a odlišuje se integrací dalších úložišť a rozšířenými možnostmi. Rozvoj MariaDB dohlíží nezávislá organizace MariaDB Foundation v souladu s otevřeným a transparentním procesem vývoje, který není závislý na jednotlivých výrobcích. MariaDB je dodávána místo MySQL v mnoha distribucích Linuxu (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) a je implementována v takových významných projektech, jako jsou Wikipedia, Google Cloud SQL a Nimbuzz.

Mezi změnami ve větvi MariaDB 12.3 ve srovnání s předchozím LTS vydáním MariaDB 11.8:

  • Byla kompletně přepracována implementace binárního logu (binlog), hlavní komponenty pro jeho vedení byly přesunuty do enginu InnoDB. Tento přesun umožnil zbavit se zastaralé logiky synchronizace, zrychlit replikaci a zvýšit výkon operací spojených se zapisováním dat. Při testování nové implementace na vysoce zatížených systémech byl zaznamenán nárůst výkonu při velkém počtu zápisových operací až 4x. Pro zapnutí je navrženo nastavení „binlog_storage_engine=innodb“.
  • Rychlost vektorového vyhledávání s využitím typu VECTOR, používaného v systémech strojového učení, byla zvýšena o 30-50 %. Zrychlení je dosaženo optimalizací výpočtů při hledání podobnosti mezi vektory v mnohorozměrných prostorech a implementací nové techniky extrapolace na základě vnořených vektorových reprezentací (matryoshka embedding).
  • Byly přidány funkce pro usnadnění migrace z databázového systému Oracle. V režimu kompatibility s databázovým systémem Oracle byly implementovány funkce TO_NUMBER (převod řetězce na číslo), TO_DATE (převod řetězce na datum) a TRUNC (ořezání data například na hodinu, den, měsíc, rok), a také byla přidána podpora asociativních polí (INDEX BY) a syntaktické konstrukce „( + )“ pro definici vnějších spojení (outer join).
  • Pro zvýšení kompatibility s MySQL byl přidán autentifikační plugin caching_sha2_password, který používá pro hashování algoritmus SHA2 místo SHA1 a je kompatibilní se stejnojmenným pluginem z MySQL 9.
  • Byl přidán nový typ XMLTYPE pro ukládání dat v formátu XML.
  • Byla implementována možnost použití kurzorů s parametrovými dotazy (prepared statement).
  • Byl přidán výraz „SET PATH“ pro určení pořadí vyhledávání komponent schématu při jejich oslovování bez uvedení názvu schématu.
  • Byla implementována podpora operace „IS JSON“ pro kontrolu typu výrazu JSON, definovaného ve standardu SQL:2023.
  • Ve výrazu „PARTITION BY KEY“ byla implementována podpora algoritmů hashování MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 a XXH3.
  • V úložišti Aria byl implementován segmentovaný cache klíčů, ve kterém jsou klíče rozděleny do skupin, které jsou uloženy v samostatných segmentech cache. Nový cache umožnil zvýšit výkon paralelního vykonávání dotazů různými uživateli. Počet segmentů je určen proměnnou aria_pagecache_segments, která může nabývat hodnot od 1 (výchozí) do 128.
  • Byla přidána možnost použití indexů na základě funkcí (funkční index) pro zlepšení výkonu operací GROUP/ORDER BY.
  • Byla realizována podpora výrazu „CREATE GLOBAL TEMPORARY TABLE“ pro vytváření globálních dočasných tabulek. Takové dočasné tabulky jsou odstraněny po skončení sezení a jsou viditelné všem uživatelům, ale obsahují data, která jsou individuální pro každého uživatele.
  • Byla přidána podpora SSL-klíčů chráněných heslem. Heslo pro odblokování SSL certifikátů může být zadáno prostřednictvím proměnné ssl_passphrase nebo ručně při spuštění. serveru.
  • Byl přidán příkaz „SET SESSION AUTHORIZATION“ pro vykonávání akcí pod jiným uživatelským účtem při udělení příslušných oprávnění (příkaz lze považovat za ekvivalent „sudo“ pro databáze).
  • Do pluginu file_key_management.so byla přidána podpora pro SHA-2 hash.
  • Byla přidána podpora slabých kurzorových proměnných (weak cursor variable) předdefinovaného typu SYS_REFCURSOR, které umožňují vracet kurzor z uložených procedur (v parametru OUT) nebo z funkcí (v příkazu RETURN). Pro omezení maximálního počtu současně otevřených kurzorů byla přidána systémová proměnná „max_open_cursors“.
  • Do typu TO_CHAR byla přidána podpora formátu FM (Fill Mode) pro vyloučení přídavného vyplnění. Například dotaz
    „SELECT CONCAT(‘/’, TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘/’);“ vrátí „/Monday/“ místo „/Monday /“.
  • Do utility mariadb-check a příkazu CHECK TABLE byla přidána podpora pro tabulky od motoru SEQUENCE.
  • Do optimalizátoru byla přidána podpora možností (hint), které ovlivňují vytváření optimalizačního plánu: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, MAX_EXECUTION_TIME, [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, NO_ROWID_FILTER, INDEX_MERGE/NO_INDEX_MERGE, [NO_]DERIVED_CONDITION_PUSHDOWN a [NO_]MERGE. Možnosti jsou zapracovány do dotazu ve formátu kompatibilním s MySQL, například:

    SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …;
    SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE …;

  • Zvýšil se výkon neuspořádaných výrazů „LEFT JOIN“ a uspořádaného skenování při použití výrazu „PARTITION BY RANGE“.
  • Ve výsledcích sledování optimalizátoru byla zajištěna ukázka definic
    tabulek a pohledů.
  • Při provádění operací sloučení tabulek (JOIN) byla implementována optimalizace zohledňující jedinečnost řádků ve vnořených dotazech s výrazem „GROUP BY“ pro přesnější předpověď počtu výsledných řádků (out_rows) a správné použití indexů.
  • Byla vylepšena škálovatelnost zámků MDL (Metadata Lock).
  • Byla přidána podpora nových GIS funkcí (Geographic Information System):
    ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect.
  • Byla přidána podpora pro spouštěče, které se aktivují na základě více událostí. Ve výrazu CREATE TRIGGER je nyní možné uvádět události, na které se vztahuje, pomocí syntaxe „{ event [ OR … ] }”.
  • Do plugin pro auditní logy byla přidána podpora pro vyrovnání zápisu do logu. Velikost vyrovnávací paměti se nastavuje pomocí proměnné server_audit_file_buffer_size.
    Bylo implementováno ukládání informací o síťových portech pro příchozí spojení do auditního logu (dříve byl zaznamenán pouze host).
  • Do nástroje mariadb byla přidána možnost „—script-dir” pro určení alternativního adresáře pro hledání skriptů spouštěných příkazem SOURCE.
  • Povolené používání replikace v paralelním režimu při asynchronní replikaci dat mezi dvěma clustery Galera.
  • Do utilitiy mariadb-dump byla přidána možnost zadávat masky (například „database_*“), pomocí volby „-L“ (—wildcards).
  • Zrušeno požadavek na jedinečnost identifikátorů cizích klíčů (foreign key) v rámci celé databáze (stačí jedinečnost na úrovni tabulky).
  • Byla odstraněna omezení na úroveň vloženosti struktur v funkcích pro práci s JSON (odstraněn limit JSON_DEPTH_LIMIT, který dříve měl hodnotu 32).
  • Byla přidána tabulka TRIGGERED_UPDATE_COLUMNS do schématu INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), která ukazuje sloupce měněné při aktivaci triggeru.
  • Ve tabulce PARAMETERS v schématu INFORMATION_SCHEMA byl implementován sloupec PARAMETER_DEFAULT, obsahující výchozí hodnoty parametrů uložených procedur.
  • Byly odstraněny proměnné big_tables, large_page_size a storage_engine, které byly dříve označeny jako zastaralé.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster