Po roku prac i sześciu wersjach testowych pierwsze stabilne wydanie nowej gałęzi bazy danych , w ramach której rozwija się fork MySQL, zachowujący zgodność wsteczną oraz integracją dodatkowych silników przechowywania i rozszerzonymi możliwościami. Wsparcie dla nowej wersji będzie realizowane przez 5 lat, do czerwca 2024 roku.
Rozwój MariaDB nadzoruje niezależna organizacja MariaDB Foundation zgodnie z całkowicie otwartym i przejrzystym procesem rozwoju, niezależnym od konkretnych dostawców. MariaDB jest dostarczana zamiast MySQL w wielu dystrybucjach Linuksa (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) i wdrożona w takich dużych projektach, jak , i .
Kluczowe :
- W skład wchodzi technologia synchronizowanej replikacji multi-master , umożliwiająca zastosowanie topologii active-active multi-master, z dostępem do odczytu i zapisu dla dowolnego węzła. Przy synchronizowanej replikacji wszystkie węzły zawsze zawierają aktualne dane, co zapewnia brak utraconych transakcji, ponieważ transakcja jest rejestrowana dopiero po rozpowszechnieniu danych we wszystkich węzłach. Replikacja odbywa się w trybie równoległym, na poziomie wierszy, z przesyłaniem tylko informacji o zmianach;
- W systemach podobnych do Unix domyślnie działa wtyczka uwierzytelniania , umożliwiająca wykorzystanie istniejących w systemie kont do połączenia z bazą danych za pomocą lokalnego gniazda unix;
- Dodano określenie czasu życia hasła użytkownika, po upływie którego hasło jest oznaczane jako przestarzałe. Aby ustalić datę wygaśnięcia hasła w operacjach „CREATE USER” i „ALTER USER” dodano wyrażenie „PASSWORD EXPIRE INTERVAL N DAY”;
- Dodano wsparcie dla użytkowników bazy danych poprzez wyrażenie „ACCOUNT LOCK” w operacjach „CREATE USER” i „ALTER USER”;
- W znacznym stopniu przyspieszono wykonywanie sprawdzania uprawnień w konfiguracjach z dużą liczbą użytkowników lub reguł dostępu;
- użycie tabel mysql.user i mysql.host. Do przechowywania kont i globalnych uprawnień teraz stosuje się tabelę mysql.global_priv;
- W uwierzytelniania wsparcie wyrażenia „SET PASSWORD”;
- możliwość używania więcej niż jednej wtyczki uwierzytelniania dla każdego konta, co może być przydatne w procesie stopniowego przechodzenia użytkowników na wtyczkę . Podczas tworzenia użytkownika root@localhost przez skrypt mysql_install_db domyślnie włączane są dwa wtyczki uwierzytelniania — unix_socket i mysql_native_password;
- W magazynie InnoDB zaimplementowano operację natychmiastowego usuwania kolumn (ALTER TABLE … DROP COLUMN … ALGORITHM=INSTANT) oraz zmiany kolejności kolumn. Zredukowano rozmiar początkowego logu odwracania operacji (redo log). Dodano wsparcie dla rotacji kluczy dla innodb_encrypt_log. Zrealizowano algorytm weryfikacji sum kontrolnych
innodb_checksum_algorithm=full_crc32. Zapewniono natychmiastowe rozszerzenie typu VARCHAR oraz zmianę kodowania tekstu dla nieindeksowanych kolumn; - Udoskonalono optymalizator. Dodano możliwość śledzenia optymalizatora, aktywowaną przez zmienną systemową . Domyślnie prowadzenie statystyki, niezależnej od silników składowania.
Pojawiły się dwa nowe tryby use_stat_tables — COMPLEMENTARY_FOR_QUERIES oraz PREFERABLY_FOR_QUERIES. Włączono tryb optimize_join_buffer_size. Dodano nowe rowid_filter oraz condition_pushdown_from_having; - Wsparcie dla systemowych tabel wersjonowanych, w których przechowywane są nie tylko aktualne dane, ale także informacje o wszystkich wcześniejszych zmianach, zostało rozszerzone z zakresami czasowymi;
- Dodano nowe polecenie „FLUSH SSL” do ponownego ładowania certyfikatów SSL bez ponownego uruchamiania serwera;
- W operacjach „INSTALL PLUGIN”, „UNINSTALL PLUGIN” oraz „UNINSTALL SONAME” dodano wsparcie dla wyrażeń „IF NOT EXISTS” oraz „IF EXISTS”;
- Proponowane są odporne na awarie tabele systemowe, do których przechowywania stosuje się silnik ;
- Zrealizowano przejście na korzystanie ze standardu C++11 (wykorzystano operacje atomowe);
- Zdecydowanie zwiększono wydajność właściwości lokalizacji „Collation” dla Unicode, pozwalających ustalać zasady sortowania oraz metody porównywania z uwzględnieniem znaczenia znaków;
- wtyczka do definiowania własnych typów pól;
- Dodano wsparcie dla okiennych (User-Defined Functions);
- W operacji „FLUSH TABLES” tryb „BACKUP LOCK”, który można wykorzystać podczas tworzenia kopii zapasowych plików Bazy Danych;
- wsparcie dla komend serwera rozpoczynających się od nazwy mariadb, alternatywnych do komend rozpoczynających się od „mysql” (np. mariadump zamiast mysqldump).
Źródło: opennet.ru
