Стабилен релиз на СУБД MariaDB 10.6

След година разработка и три предварителни издания, е публикувано първото стабилно издание на новата версия на СУБД MariaDB 10.6, в която се развива клон на MySQL, запазваща обратна съвместимост и отличаваща се с интеграция на допълнителни механизми за съхранение и разширени възможности. Поддръжката на новата версия ще се осъществява 5 години, до юли 2026 година.

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

Ключови подобрения в MariaDB 10.6:

  • Осигурена е атомарност на изпълнението на изразите „CREATE TABLE|VIEW|SEQUENCE|TRIGGER“, „ALTER TABLE|SEQUENCE“, „RENAME TABLE|TABLES“, „DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE“ (или изразът е напълно завършен, или всичко се връща в първоначалното си състояние). При операциите „DROP TABLE“, които изтриват множество таблици наведнъж, атомарността се осигурява на ниво всяка отделна таблица. Целта на промените е да се осигури целостта при срив сървър по време на изпълнение на операцията. Преди, след срив можеха да останат временни таблици и файлове, да се нарушава синхронизацията на таблиците в механизми за съхранение и frm-файлове, оставаха непреименувани отделни таблици при преименуване на множество таблици наведнъж. Целостта се осигурява чрез водене на журнал за възстановяване на състоянието, пътят до който може да бъде определен чрез новата опция „—log-ddl-recovery=файл“ (по подразбиране ddl-recovery.log).
  • Реализирана е определената в стандарта SQL 2008 конструкция „SELECT … OFFSET … FETCH“, позволяваща извеждането на определен брой редове, започвайки от указаното смещение, с възможност за използване на параметъра „WITH TIES“ за прикрепяне на още едно следващо значение. Например, изразът „SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES“ се различава от конструкцията „SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1“ с извеждането на още един елемент, следващ в края (вместо 3 ще бъдат изведени 4 реда).
  • За механизма InnoDB е реализиран синтаксисът „SELECT … SKIP LOCKED“, позволяващ изключването на редове, за които не може да бъде наложена блокировка („LOCK IN SHARE MODE“ или „FOR UPDATE“).
  • Възможността за игнориране на индекси е реализирана (в MySQL 8 подобна функционалност се нарича "невидими индекси"). Маркировката на индекса за игнориране се осъществява чрез флага IGNORED в израза "ALTER TABLE", след което индексът остава видим и актуализиран, но не се използва от оптимизатора.
  • Добавена е функцията JSON_TABLE(), предназначена за преобразуване на данни от JSON в релационна форма. Например, документ JSON може да бъде преобразуван за използване в контекста на таблица, която може да бъде указана в блока FROM на израза SELECT.
  • Подобрена е съвместимостта с СУБД Oracle: Добавена е поддръжка на анонимни подзапроси в блока FROM. Реализирана е конструкция MINUS (еквивалент на EXCEPT). Добавени са функции ADD_MONTHS(), TO_CHAR(), SYS_GUID() и ROWNUM().
  • В двигателят InnoDB е ускорено вмъкването в празни таблици. Форматът на редовете COMPRESSED по подразбиране е преведен в режим само за четене. Схемата SYS_TABLESPACES замени SYS_DATAFILES и директно отразява състоянието в файловата система. За временното таблично пространство е осигурена поддръжка на отложена запис. Поддръжката на стария алгоритъм за контролни суми, запазен за съвместимост с MariaDB 5.5, е прекратена.
  • В системата за репликация размерът на параметъра master_host е увеличен от 60 на 255 символа, а master_user до 128. Добавена е променливата binlog_expire_logs_seconds за настройка на времето за остаряване на бинарния лог в секунди (по-рано времето за нулиране се определяше само в дни чрез променливата expire_logs_days).
  • В механизма за синхронна multi-master репликация Galera е реализирана променливата wsrep_mode за настройка на параметрите на API WSREP (Write Set REPlication). Позволен е преход от незашифровани комуникации към използване на TLS без спиране на клъстера.
  • Реализирана е схема sys-schema, в която е събрана колекция от представления, функции и процедури за анализ на операции с БД.
  • Добавени са служебни таблици за анализ на производителността на репликацията.
  • В набора информационни таблици са добавени представленията INFORMATION_SCHEMA.KEYWORDS и INFORMATION_SCHEMA.SQL_FUNCTIONS, които извеждат списък на наличните ключови думи и функции.
  • Премахнати са хранилищата TokuDB и CassandraSE.
  • Кодировката utf8 е преведена от четирибайтовото представяне utf8mb4 (U+0000..U+10FFFF) на трибайтовото utf8mb3 (обхваща диапазона Unicode U+0000..U+FFFF).
  • Добавена е поддръжка за активиране по сокет в systemd.
  • В плъгина GSSAPI е добавена поддръжка на имена на групи от Active Directory и SID.
  • Добавена проверка за наличието на конфигурационен файл $MARIADB_HOME/my.cnf в допълнение на $MYSQL_HOME/my.cnf.
  • Реализирани са нови системни променливи binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode и Innodb_buffer_pool_pages_lru_freed.

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

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