Wydanie systemu zarządzania bazą danych MySQL 9.3.0

Firma Oracle utworzyła nową gałąź systemu baz danych MySQL 9.3.0. Wersje MySQL Community Server 9.3.0 są przygotowane dla wszystkich głównych dystrybucji Linux, FreeBSD, macOS i Windows. Zgodnie z nową modelem wydania wprowadzonym w 2023 roku, MySQL 9.3 został zakwalifikowany do gałęzi „Innovation”. Gałęzie Innovation są polecane dla tych, którzy chcą wcześniej uzyskać dostęp do nowych funkcji, są publikowane co 3 miesiące i są wspierane tylko do wydania następnej znaczącej wersji (na przykład po pojawieniu się gałęzi 9.3 wsparcie dla gałęzi 9.2 zostaje zakończone). Latem planowane jest wydanie LTS 9.4, zalecane do wdrożeń, które wymagają przewidywalności i długotrwałego zachowania niezmienności. Po gałęzi LTS zostanie stworzona nowa gałąź Innovation — MySQL 10.0.

Główne zmiany w MySQL 9.3:

  • Do narzędzia mysqldump dodano opcję „—users” do tworzenia logicznych zrzutów zawierających informacje o wszystkich kontach, wyprowadzanych za pomocą wyrażeń SQL „CREATE USER” i „GRANT”. Aby wstawić wyrażenie „DROP USER” przed „CREATE USER”, przewidziano opcję „—add-drop-user”, a dla selektywnego odzwierciedlenia wybranych użytkowników w zrzucie — opcje „—include-user=user@host” i „—exclude-user=user@host”, które można podawać wielokrotnie.
  • W silniku MLE (Multilingual Engine Component), który umożliwia korzystanie w procedurach składowanych i funkcjach z kodu w językach innych niż SQL, poprawiono wsparcie dla JavaScript. Dla procedur składowanych w języku JavaScript wprowadzono typ „DECIMAL”, który można wykorzystać dla argumentów wejściowych i zwracanych. Domyślnie z względów bezpieczeństwa typ MySQL DECIMAL jest przekształcany na typ JavaScript „String”, ale to zachowanie można nadpisać poleceniem ‘SELECT mle_set_session_state(‘{„decimal_type”:„Number”}’)’, po którym będzie używany typ JavaScript „Number”. Wspierane jest rzutowanie na typ DECIMAL wartości z typami JavaScript Boolean, Number, String oraz BigInt.
  • Do procedur składowanych w JavaScript dodano wsparcie dla ustawiania parametrów lokalizacji przy użyciu API JavaScript Intl. Na przykład, aby określić bieżącą lokalizację, można użyć właściwości „Intl.DateTimeFormat().resolvedOptions().locale”, a do nadpisania lokalizacji — metody „toLocaleString()”.
  • Rozszerzono możliwości zarządzania bibliotekami JavaScript: do zmiany listy importowanych bibliotek można teraz używać wyrażeń „ALTER PROCEDURE” i „ALTER FUNCTION”. Dodano możliwość użycia wyrażenia „ALTER LIBRARY” do dodawania, usuwania lub zmieniania komentarza SQL w bibliotece. Aby uzyskać informacje o bibliotece, wprowadzono wyrażenie „SHOW LIBRARY STATUS”.
  • Dodano obsługę dynamicznego ładowania bibliotek JavaScript. Do dynamicznego importowania biblioteki należy używać słowa kluczowego „await”, na przykład „let module = await import(‘/db1/lib_${object_type}’)”.
  • Rozszerzono optymalizacje zapytań wykorzystujących kwantyfikowane operatory porównania. Oprócz wsparcia dla operatorów „=ANY” i „ALL” w optymalizacji podzapytań w nowej wersji dodano wsparcie dla operatorów „>ANY”, „>=ANY”, „<ANY”, „ALL”, „>=ALL”, „<ALL” i „<=ALL”.
  • Usunięto wtyczkę „version_tokens”, wcześniej ogłoszoną jako przestarzała.
  • Zakazano ustawiania wartości 0 w zmiennej systemowej replica_parallel_workers.
  • Usunięto 28 luk w zabezpieczeniach, z czego 26 może być eksploatowanych zdalnie przy posiadaniu dostępu do wysyłania zapytań do DBMS. Sześć najpoważniejszych problemów ma poziom zagrożenia 6.5 i jest związanych z lukami w silniku InnoDB, parserze i optymalizatorze. Mniej niebezpieczne luki dotyczą mysqldump, InnoDB, optymalizatora, DDL, UDF, parsera i systemu replikacji.

Ź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