Stabilne wydanie DBMS MariaDB 10.5

Po roku pracy i czterech wersjach wstępnych przygotowano pierwsze stabilne wydanie nowej gałęzi bazy danych MariaDB 10.4, w ramach której rozwija się fork MySQL, zachowujący zgodność wsteczną oraz różniący się integracją dodatkowych silników pamięci i rozszerzonymi możliwościami. Wsparcie nowej wersji będzie trwało 5 lat, do czerwca 2025 roku.

Rozwój MariaDB nadzoruje niezależna organizacja MariaDB Foundation w zgodzie 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 wdrożona w takich dużych projektach jak Wikipedia, Google Cloud SQL i Nimbuzz.

Kluczowe ulepszenia MariaDB 10.5:

  • Dodano silnik pamięci S3, umożliwiający przechowywanie tabel MariaDB w Amazon S3 lub dowolnym innym publicznym lub prywatnym magazynie w chmurze, który wspiera API S3. Obsługiwane jest przechowywanie zarówno zwykłych, jak i partycjonowanych (podzielonych) tabel. Przy przechowywaniu w chmurze partycjonowane tabele mogą być bezpośrednio używane z innego serwera mającego dostęp do magazynu S3.
  • Dodano silnik pamięci ColumnStore, który zapisuje dane w powiązaniu z kolumnami i wykorzystuje masowo-równoległą architekturę rozproszoną. Silnik oparty jest na dorobku magazynu MySQL InfiniDB i przeznaczony do organizacji przetwarzania i wykonywania zapytań analitycznych na dużych zbiorach danych (Data Warehouse).
    ColumnStore przechowuje dane nie w wierszach, ale w kolumnach, co pozwala na optymalizację wykonywania grupowania po kolumnach z dużych baz danych, obejmujących petabajty danych. Obsługuje liniowe skalowanie, przechowywanie danych w skompresowanej formie, pionowe i poziome partycjonowanie oraz skuteczne wykonywanie konkurencyjnych zapytań.
  • Wszystkie pliki wykonywalne zaczynające się od słowa „mysql” zostały przemianowane z użyciem słowa „mariadb”. Stare nazwy zostały zachowane w postaci linków symbolicznych.
  • Dodano nowy typ danych INET6 do przechowywania adresów IPv6.
  • Wykonano pracę nad podziałem uprawnień na mniejsze składniki. Zamiast ogólnego uprawnienia SUPER zaproponowano serię selektywnych uprawnień „BINLOG ADMIN”,
    „BINLOG REPLAY”,
    „CONNECTION ADMIN”,
    „FEDERATED ADMIN”,
    „READ_ONLY ADMIN”,
    „REPLICATION MASTER ADMIN”,
    „REPLICATION SLAVE ADMIN” oraz
    „SET USER”.
  • Uprawnienie „REPLICATION CLIENT” zostało przemianowane na „BINLOG MONITOR”, a wyrażenie „SHOW MASTER STATUS” na „SHOW BINLOG STATUS”. Przemianowanie precyzuje zachowanie i nie ma nic wspólnego z polityczną poprawnością; projekt nie rezygnuje z terminów master/slave i nawet dodał nowe uprawnienia „MASTER ADMIN” i „SLAVE ADMIN”. W dodawaniu wyrażeń SQL pojawił się nowy klucz „REPLICA”, będący synonimem „SLAVE”.
  • Dla niektórych wyrażeń zmieniono wymagane uprawnienia do ich wykonania. „SHOW BINLOG EVENTS” wymaga teraz uprawnień „BINLOG MONITOR” zamiast „REPLICATION SLAVE”, „SHOW SLAVE HOSTS” wymagają uprawnienia „REPLICATION MASTER ADMIN” zamiast „REPLICATION SLAVE”, „SHOW SLAVE STATUS” wymaga uprawnień „REPLICATION SLAVE ADMIN” lub „SUPER” zamiast „REPLICATION CLIENT”, „SHOW RELAYLOG EVENTS” wymaga uprawnień „REPLICATION SLAVE ADMIN” zamiast „REPLICATION SLAVE”.
  • Dodano konstrukcje „INSERT … RETURNING” i „REPLACE … RETURNING„, zwracające listę wstawionych/zmienionych wierszy w formie, jak gdyby wartości były zwracane przy użyciu wyrażenia SELECT (na wzór „DELETE … RETURNING”).

    INSERT INTO t2 VALUES (1,’Dog’),(2,’Lion’),(3,’Tiger’),(4,’Leopard’)
    RETURNING id2,id2+id2,id2&id2,id2||id2;
    +——+———+———+———-+
    | id2 | id2+id2 | id2&id2 | id2||id2 |
    +——+———+———+———-+
    | 1 | 2 | 1 | 1 |
    | 2 | 4 | 2 | 1 |
    | 3 | 6 | 3 | 1 |
    | 4 | 8 | 4 | 1 |
    +——+———+———+———-+

  • Dodano wyrażenia „EXCEPT ALL” i „INTERSECT ALL” do wykluczania/dodawania wyniku dla określonego zbioru wartości.
  • Dodano możliwość umieszczania komentarzy wewnątrz bloków „CREATE DATABASE” i „ALTER DATABASE”.
  • Dodano konstrukcje do zmiany nazw indeksów i kolumn „ALTER TABLE … RENAME INDEX / KEY” oraz „ALTER TABLE … RENAME COLUMN«.
  • W operacji „ALTER TABLE” i „RENAME TABLE” dodano wsparcie dla warunku „IF EXISTS” do wykonania operacji tylko w przypadku istnienia tabeli;
  • Dla indeksów w „CREATE TABLE” wprowadzono atrybut „VISIBLE«.
  • Dodano wyrażenie „CYCLE” do identyfikacji cykli rekurencyjnych. CTE.
  • Dodano funkcje JSON_ARRAYAGG i JSON_OBJECTAGG do zwracania tablicy lub obiektu JSON z wartościami określonej kolumny.
  • Dodano systemowe tabele informacyjne (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS i THREAD_POOL_WAITS) dla puli wątków (thread_pool).
  • Wyrażenie ANALYZE rozszerzono o pokazanie czasu, który spędza na sprawdzaniu bloku WHERE i wykonywaniu operacji pomocniczych.
  • W optymalizatorze przetwarzania zakresów uwzględniono cechy „IS NOT NULL”.
  • Zasadniczo zmniejszono rozmiar plików tymczasowych używanych podczas sortowania typów VARCHAR, CHAR i BLOB.
  • W log binarny, używanego do organizacji replikacji, dodano nowe pola z metadanymi, w tym Primary Key, Column Name, Character Set oraz Geometry Type. W narzędziu mariadb-binlog oraz w poleceniach „SHOW BINLOG EVENTS” i „SHOW RELAYLOG EVENTS” wprowadzono wyświetlanie flag replikacji.
  • Konstrukcja DROP TABLE teraz niezawodnie usuwa tabele, które pozostają w silniku przechowywania, nawet przy braku plików „.frm” lub „.par”.
  • Zrealizowano sprzętową wersję funkcji crc32() dla CPU AMD64, ARMv8 i POWER 8.
  • Zmieniono niektóre ustawienia domyślne. Parametr innodb_encryption_threads zwiększono do 255, a wartość max_sort_length zwiększono z 4 do 8.
  • Wprowadzono liczne optymalizacje wydajności silnika InnoDB.
  • W mechanizmie synchronicznej replikacji multi-master Galera dodano pełne wsparcie GTID (Global Transaction ID), wspólnych dla wszystkich węzłów klastra identyfikatorów transakcji.
  • Dokonano przejścia na nową wersję biblioteki PCRE2 (Perl Compatible Regular Expressions), zamiast klasycznej serii PCRE 8.x.
  • Oferowane są nowe wersje interfejsów do połączenia z bazami danych MariaDB i MySQL z programów w językach Python i C: MariaDB Connector/Python 1.0.0 i MariaDB Connector/C 3.1.9. Interfejs dla Pythona odpowiada Python DB API 2.0, jest napisany w języku C i używa do połączenia z serwerem biblioteki Connector/C.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster