Публикувана е нова LTS версия на СУБД MariaDB 12.3

Представен е выпуск на СУБД MariaDB 12.3.2, който е обявен за първия стабилен релиз от клон 12.3. Клонът MariaDB 12.3 е отнесен към версиите с дългосрочна поддръжка и ще бъде поддържан до юни 2029 година. В същото време е наличен и релизът MariaDB 13.0.1, който има статус кандидат.

Проектът MariaDB развива отклонение от MySQL, което запазва обратно съвместимост и предлага интеграция на допълнителни механизми за съхранение и разширени възможности. Развитието на MariaDB се ръководи от независимата организация MariaDB Foundation в съответствие с открит и прозрачен процес на разработка, независим от отделни производители. MariaDB се предлага вместо MySQL в много дистрибуции на Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и е внедрена в значими проекти като Wikipedia, Google Cloud SQL и Nimbuzz.

Сред промените в клон MariaDB 12.3 в сравнение с предишния LTS релиз MariaDB 11.8:

  • Напълно е преработена реализацията на бинарния лог (binlog), като основните компоненти за неговото водене са преместени в двигателя InnoDB. Такова преместване е позволило да се отървем от остарялата логика на синхронизация, да се ускорят репликациите и да се повиши производителността на операциите, свързани с запис на данни. При тестването на новата реализация в системи с високо натоварване е било отбелязано увеличение на производителността при голямо количество операции по запис до 4 пъти. За включване е предложена настройка „binlog_storage_engine=innodb“.
  • Скоростта на векторното търсене с използването на типа VECTOR, прилаган в системите за машинно обучение, е увеличена с 30-50%. Ускорението е постигнато благодарение на оптимизацията на изчисленията при търсенето на сходство между вектори в многомерни пространства и реализирането на нова техника за екстраполация на база вложени векторни представления (matryoshka embedding).
  • Добавени са функции за опростяване на миграцията от СУБД Oracle. В режим на съвместимост с СУБД Oracle са реализирани функциите TO_NUMBER (преобразуване на низ в число), TO_DATE (преобразуване на низ в дата) и TRUNC (усичане на дата, например до час, ден, месец, година), а също така е добавена поддръжка на асоциативни масиви (INDEX BY) и синтаксиса „( + )“ за определяне на външни сливане (outer join).
  • С цел повишаване на съвместимостта с MySQL е добавен плъгин за удостоверяване caching_sha2_password, който използва алгоритъм SHA2 за хеширане вместо SHA1 и е съвместим с едноименния плъгин от MySQL 9.
  • Добавен е нов тип XMLTYPE за съхранение на данни във формат XML.
  • Реализирана е възможността за използване на курсори с параметризирани заявки (prepared statement).
  • Добавено е изразът „SET PATH“ за задаване на реда на търсене на компонентите на схемата при достъп до тях без указание на името на схемата.
  • Реализирана е поддръжка на операцията „IS JSON“ за проверка на типа на израза JSON, определен в стандарта SQL:2023.
  • В израза «PARTITION BY KEY» е реализирана поддръжка на хеширащи алгоритми MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 и XXH3.
  • В механизма за съхранение Aria е реализиран сегментиран кеш на ключовете, при който ключовете се разделят на групи, съхранявани в отделни сегменти на кеша. Новият кеш позволи повишаване на производителността при паралелно изпълнение на запитвания от различни потребители. Броят на сегментите се задава чрез променливата aria_pagecache_segments, която може да приема стойности от 1 (по подразбиране) до 128.
  • Добавена е възможността за използване на индекси на база функции (functional index) за повишаване на производителността на операциите GROUP/ORDER BY.
  • Реализирана е поддръжка на израза «CREATE GLOBAL TEMPORARY TABLE» за създаване на глобални временни таблици. Подобни временни таблици се изтриват след приключване на сесията и са видими за всички потребители, но съдържат данни, индивидуални за всеки потребител.
  • Добавена е поддръжка SSL-ключове, защитени с парола. Паролата за отключване на SSL сертификатите може да бъде зададена чрез променливата ssl_passphrase или ръчно при стартиране. сървър.
  • Добавено е изразът „SET SESSION AUTHORIZATION“ за извършване на действия под друго потребителско име при зададени съответни привилегии (изразът може да се разглежда като аналог на „sudo“ за СУБД).
  • В плъгина file_key_management.so е добавена поддръжка на хешове SHA-2.
  • Добавена е поддръжка на слаби курсорни променливи (weak cursor variable) с предварително зададен тип SYS_REFCURSOR, позволяващи връщането на курсор от хранилища (в параметъра OUT) или от функции (в израза RETURN). За ограничаване на максималния брой едновременно отворени курсори е добавена системна променлива „max_open_cursors“.
  • В типа TO_CHAR е добавена поддръжка на формата FM (Fill Mode) за изключване на допълнителното запълване. Например, заявката
    «SELECT CONCAT(‘\/’, TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘\/’);» ще върне «\/Понеделник\/» вместо «\/Понеделник \/».
  • В утилитата mariadb-check и израза CHECK TABLE е добавена поддръжка за таблици от движка SEQUENCE.
  • В оптимизатора е добавена поддръжка на опции (hint), влияещи на изграждането на плана за оптимизация: 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 и [NO_]MERGE. Опциите се поставят в заявката в формат, съвместим с MySQL, например:

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

  • Повишена е производителността на неупорядочените изрази «LEFT JOIN» и на упорядоченото сканиране при използване на израза «PARTITION BY RANGE».
  • В резултатите от трасировката на оптимизатора е осигурено показването на определения
    таблици и изгледи.
  • При извършване на операции за обединение на таблици (JOIN) е реализирана оптимизация, взимаща предвид уникалността на редовете в подзаявките с израза „GROUP BY“ за по-точно прогнозиране на броя на резултатните редове (out_rows) и правилното прилагане на индекси.
  • Подобрена е мащабируемостта на блокировките MDL (Metadata Lock).
  • Добавена е поддръжка на нови GIS функции (Географска информационна система):
    ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect.
  • Добавена е поддръжка на тригери, сработващи за множество събития. В израза CREATE TRIGGER сега е възможно да се изброят събитията, попадащи под него, с помощта на синтаксиса „{ event [ OR … ] }“.
  • В плъгина за водене на логове на одита е добавена поддръжка за буферизиране на операциите за запис в лог. Размерът на буфера се задава чрез променливата server_audit_file_buffer_size.
    Реализирано е записването в лог на одита на информация за мрежовите портове за входящи връзки (по-рано се отразяваше само хост).
  • В утилита mariadb е добавена опция «—script-dir», която задава алтернативна директория за търсене на скриптове, изпълнявани с командата SOURCE.
  • Позволено е използването на репликация в паралелен режим при асинхронна репликация на данни между два клъстера Galera.
  • В утилитата mariadb-dump е добавена възможността за указване на маски (например, «database_*»), използвайки опцията «-L» (—wildcards).
  • Премахнато е изискването за уникалност на идентификаторите на външните ключове (foreign key) в контекста на цялата БД (достатъчно е уникалността на ниво таблица).
  • Премахнати са ограниченията на нивото на вложеност на структурите в функциите за работа с JSON (премахнат е лимитът JSON_DEPTH_LIMIT, който преди това приемаше стойност 32).
  • Добавена е таблицата TRIGGERED_UPDATE_COLUMNS в схемата INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), която показва колоните, изменяеми при задействане на тригера.
  • В таблицата PARAMETERS в схемата INFORMATION_SCHEMA е реализиран колоната PARAMETER_DEFAULT, съдържаща стойностите по подразбиране на параметрите на съ хранимите процедури.
  • Премахнати са променливите big_tables, large_page_size и storage_engine, които преди бяха обявени за остарели.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster