Stabilne wydanie systemu zarządzania bazą danych MariaDB 10.6

Po roku prac rozwojowych i trzech wydaniach wstępnych, opublikowano pierwszą stabilną wersję nowej gałęzi systemu zarządzania bazą danych MariaDB 10.6, w ramach której rozwija się odgałęzienie MySQL, zachowujące zgodność wsteczną i charakteryzujące się integracją dodatkowych silników składowania oraz rozszerzonymi możliwościami. Wsparcie dla nowej gałęzi będzie prowadzone przez 5 lat, do lipca 2026 roku.

Rozwój MariaDB nadzoruje niezależna organizacja MariaDB Foundation zgodnie z całkowicie otwartym i przejrzystym procesem rozwoju, niezależnym od poszczególnych producentów. MariaDB jest dostarczana zamiast MySQL w wielu dystrybucjach Linuxa (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) i wdrażana w takich dużych projektach, jak Wikipedia, Google Cloud SQL i Nimbuzz.

Kluczowe ulepszenia MariaDB 10.6:

  • Zabezpieczono atomowość wykonywania wyrażeń „CREATE TABLE|VIEW|SEQUENCE|TRIGGER”, „ALTER TABLE|SEQUENCE”, „RENAME TABLE|TABLES”, „DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE” (lub wyrażenie zostaje w pełni zakończone, lub wszystko wraca do stanu wyjściowego). W przypadku operacji „DROP TABLE”, usuwających jednocześnie kilka tabel, atomowość zapewniana jest na poziomie każdej pojedynczej tabeli. Celem zmiany jest zapewnienie integralności w przypadku awarii serwery podczas wykonywania operacji. Wcześniej, po awarii mogły pozostawać tymczasowe tabele i pliki, zachodziły zakłócenia synchronizacji tabel w silnikach składowania oraz plikach frm, a niektóre tabele mogły pozostać nieprzemianowane przy jednoczesnym przemianowywaniu kilku tabel. Integralność zapewniana jest dzięki prowadzeniu dziennika odzyskiwania stanu, którego ścieżkę można określić za pomocą nowej opcji „—log-ddl-recovery=plik” (domyślnie ddl-recovery.log).
  • Zrealizowano określoną w standardzie SQL 2008 konstrukcję „SELECT … OFFSET … FETCH”, pozwalającą na wyprowadzenie określonej liczby wierszy, zaczynając od wskazanej przesunięcia, z możliwością użycia parametru „WITH TIES” do dołączenia kolejnej wartości. Na przykład wyrażenie „SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES” różni się od konstrukcji „SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1” tym, że wyprowadza jeszcze jeden element, który znajduje się na końcu (zamiast 3 zostanie wyprowadzone 4 wierszy).
  • Dla silnika InnoDB zrealizowano składnię „SELECT … SKIP LOCKED”, pozwalającą na wykluczenie wierszy, dla których nie można ustawić blokady („LOCK IN SHARE MODE” lub „FOR UPDATE”).
  • Zrealizowano możliwość ignorowania indeksów (w MySQL 8 podobna funkcjonalność nosi nazwę „niewidzialne indeksy”). Oznaczenie indeksu do ignorowania odbywa się za pomocą flagi IGNORED w wyrażeniu „ALTER TABLE”, po czym indeks pozostaje widoczny i aktualizowany, ale nie jest używany przez optymalizator.
  • Dodano funkcję JSON_TABLE(), przeznaczoną do konwersji danych JSON na formę relacyjną. Na przykład, dokument JSON można przekształcić do użycia w kontekście tabeli, którą można określić w blokach FROM w wyrażeniu SELECT.
  • Poprawiono zgodność z bazą danych Oracle: Dodano wsparcie dla anonimowych podzapytania w bloku FROM. Zrealizowano konstrukcję MINUS (odpowiednik EXCEPT). Dodano funkcje ADD_MONTHS(), TO_CHAR(), SYS_GUID() oraz ROWNUM().
  • W silniku InnoDB przyspieszono wstawianie do pustych tabel. Format wierszy COMPRESSED domyślnie został przełączony w tryb tylko do odczytu. Schemat SYS_TABLESPACES zastąpił SYS_DATAFILES i bezpośrednio odzwierciedla stan w systemie plików. Dla tymczasowej przestrzeni tabelowej zapewniono wsparcie dla opóźnionego zapisu. Zaniechano wspierania starego algorytmu sum kontrolnych, zachowanego dla zgodności z MariaDB 5.5.
  • W systemie replikacji zwiększono wartość parametru master_host z 60 do 255 znaków, a master_user do 128. Dodano zmienną binlog_expire_logs_seconds dla konfiguracji czasu wygaśnięcia dziennika binarnego w sekundach (wcześniej czas resetu określany był tylko w dniach przez zmienną expire_logs_days).
  • W mechanizmie synchronizowanej multi-master replikacji Galera dodano zmienną wsrep_mode dla konfiguracji parametrów API WSREP (Write Set REPlication). Zezwolono na przełączanie Galery z niezabezpieczonych komunikacji na użycie TLS bez zatrzymywania klastra.
  • Zrealizowano schemat sys-schema, w którym zgromadzono kolekcję widoków, funkcji i procedur do analizy operacji na BAZIE DANYCH.
  • Dodano pomocnicze tabele do analizy wydajności replikacji.
  • Do zestawu tabel informacyjnych dodano widoki INFORMATION_SCHEMA.KEYWORDS i INFORMATION_SCHEMA.SQL_FUNCTIONS, które wyświetlają listę dostępnych słów kluczowych i funkcji.
  • Usunięto magazyny TokuDB i CassandraSE.
  • Kodowanie utf8 przekształcono z czterobajtowego przedstawienia utf8mb4 (U+0000..U+10FFFF) na trzybajtowe utf8mb3 (obejmuje zakres Unicode U+0000..U+FFFF).
  • Dodano wsparcie dla aktywacji za pomocą gniazda w systemd.
  • W wtyczce GSSAPI dodano wsparcie dla nazw grup Active Directory i SID.
  • Dodano sprawdzenie istnienia pliku konfiguracyjnego $MARIADB_HOME/my.cnf obok $MYSQL_HOME/my.cnf.
  • Wprowadzono nowe zmienne systemowe binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode oraz Innodb_buffer_pool_pages_lru_freed.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster