Une nouvelle branche LTS du SGBD MariaDB 12.3 a été publiée

La version 12.3.2 de la base de données MariaDB a été publiée, marquée comme le premier release stable de la branche 12.3. La branche MariaDB 12.3 est classée comme une version à long terme et sera maintenue jusqu'en juin 2029. En même temps, la version 13.0.1 de MariaDB, qui est en statut candidat, est disponible.

Le projet MariaDB développe une bifurcation de MySQL, préservant la rétrocompatibilité et se distinguant par l'intégration de moteurs de stockage supplémentaires et de fonctionnalités avancées. Le développement de MariaDB est supervisé par l'organisation indépendante MariaDB Foundation conformément à un processus de développement ouvert et transparent, sans dépendance vis-à-vis de fournisseurs individuels. MariaDB est fourni à la place de MySQL dans de nombreuses distributions Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) et est intégré dans d'importants projets tels que Wikipedia, Google Cloud SQL et Nimbuzz.

Parmi les changements dans la branche MariaDB 12.3 par rapport à la précédente version LTS 11.8 :

  • La mise en œuvre du journal binaire (binlog) a été complètement révisée, et ses principaux composants ont été transférés dans le moteur InnoDB. Ce transfert a permis d'éliminer la logique de synchronisation obsolète, d'accélérer la réplication et d'améliorer la performance des opérations liées à l'écriture de données. Les tests de la nouvelle implémentation sur des systèmes à forte charge ont montré une augmentation de performance jusqu'à 4 fois lors d'un grand nombre d'opérations d'écriture. Une option « binlog_storage_engine=innodb » a été proposée pour l'activer.
  • La vitesse de recherche vectorielle utilisant le type VECTOR, appliqué dans les systèmes d'apprentissage machine, a été augmentée de 30 à 50 %. Cette amélioration est due à l'optimisation des calculs lors de la recherche de similarités entre vecteurs dans des espaces multidimensionnels et à l'implémentation d'une nouvelle technique d'extrapolation basée sur des représentations vectorielles imbriquées (matryoshka embedding).
  • Des fonctionnalités ont été ajoutées pour simplifier la migration depuis la base de données Oracle. En mode de compatibilité avec Oracle, les fonctions TO_NUMBER (conversion de chaîne en nombre), TO_DATE (conversion de chaîne en date) et TRUNC (troncature de date, par exemple, à l’heure, au jour, au mois, à l’année), ainsi que le support des tableaux associatifs (INDEX BY) et de la syntaxe « ( + ) » pour définir les jointures externes (outer join) ont été implémentés.
  • Pour améliorer la compatibilité avec MySQL, un plugin d'authentification caching_sha2_password a été ajouté, utilisant l'algorithme SHA2 pour le hachage au lieu de SHA1 et compatible avec le plugin éponyme de MySQL 9.
  • Un nouveau type XMLTYPE pour le stockage de données au format XML a été ajouté.
  • Il est désormais possible d'utiliser des curseurs avec des requêtes paramétrées (prepared statement).
  • L'expression « SET PATH » a été ajoutée pour définir l'ordre de recherche des composants du schéma de stockage lors de leur accès sans spécifier le nom du schéma.
  • Le support de l'opération « IS JSON » a été mis en œuvre pour vérifier le type d'expression JSON défini dans la norme SQL:2023.
  • L'expression «PARTITION BY KEY» prend en charge les algorithmes de hachage MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 et XXH3.
  • Le moteur de stockage Aria implémente un cache de clés segmenté, où les clés sont regroupées et stockées dans des segments de cache distincts. Ce nouveau cache a permis d'améliorer les performances de l'exécution parallèle des requêtes par différents utilisateurs. Le nombre de segments est défini par la variable aria_pagecache_segments, qui peut prendre des valeurs de 1 (par défaut) à 128.
  • Ajout de la possibilité d'utiliser des index basés sur des fonctions (functional index) pour améliorer les performances des opérations GROUP/ORDER BY.
  • Prise en charge de l'expression «CREATE GLOBAL TEMPORARY TABLE» pour créer des tables temporaires globales. Ces tables temporaires sont supprimées après la fin de la session et sont visibles par tous les utilisateurs, mais contiennent des données individuelles pour chaque utilisateur.
  • Ajout du support de SSL-clés protégées par mot de passe. Le mot de passe pour déverrouiller les certificats SSL peut être spécifié via la variable ssl_passphrase ou manuellement au démarrage. de serveurs.
  • Ajout de l'expression «SET SESSION AUTHORIZATION» pour exécuter des actions sous un autre utilisateur avec les privilèges appropriés (l'expression peut être considérée comme l'analogue de «sudo» pour les SGBD).
  • Le plugin file_key_management.so prend désormais en charge les hachages SHA-2.
  • Ajout de la prise en charge des variables de curseur faibles (weak cursor variable) de type prédéfini SYS_REFCURSOR, permettant de retourner un curseur à partir de procédures stockées (en paramètre OUT) ou de fonctions (dans l'expression RETURN). Pour limiter le nombre maximal de curseurs ouverts simultanément, une variable système «max_open_cursors» a été ajoutée.
  • Le type TO_CHAR prend désormais en charge le format FM (Fill Mode) pour exclure le remplissage supplémentaire. Par exemple, la requête
    «SELECT CONCAT(‘/', TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘/’);» renverra «/Monday/» au lieu de «/Monday /».
  • La commande mariadb-check et l'expression CHECK TABLE prennent désormais en charge les tables du moteur SEQUENCE.
  • L'optimiseur prend en charge des options (hints) influençant la construction du plan d'optimisation : QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, MAX_EXECUTION_TIME, [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, NO_ROWID_FILTER, INDEX_MERGE/NO_INDEX_MERGE, [NO_]DERIVED_CONDITION_PUSHDOWN et [NO_]MERGE. Les options sont insérées dans la requête dans un format compatible avec MySQL, par exemple :

    SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …;
    SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE …;

  • Amélioration des performances des expressions non ordonnées «LEFT JOIN» et du scan ordonné lors de l'utilisation de l'expression «PARTITION BY RANGE».
  • Les résultats du traçage de l'optimiseur montrent maintenant les définitions
    des tables et des vues.
  • Lors de l'exécution des opérations de fusion de tables (JOIN), une optimisation tenant compte de l'unicité des lignes dans les sous-requêtes avec l'expression «GROUP BY» a été mise en œuvre pour prédire plus précisément le nombre de lignes résultantes (out_rows) et appliquer correctement les index.
  • Amélioration de la scalabilité des verrous MDL (Metadata Lock).
  • Ajout du support de nouvelles fonctions GIS (Système d'Information Géographique) :
    ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect.
  • Ajout du support des déclencheurs, s'activant pour plusieurs événements. Dans l'expression CREATE TRIGGER, il est maintenant possible de répertorier les événements concernés en utilisant la syntaxe «{ event [ OR … ] } ».
  • Ajout du support de la mise en mémoire tampon pour l'opération d'enregistrement dans le plugin de journalisation d'audit. La taille du tampon est définie via la variable server_audit_file_buffer_size.
    Implémentation de la sauvegarde dans le journal d'audit des informations sur les ports réseau pour les connexions entrantes (auparavant, seul l'hôte était reflété).
  • Ajout de l'option «—script-dir» à l'outil mariadb pour spécifier un répertoire alternatif pour les scripts exécutés par la commande SOURCE.
  • Autorisation de l'utilisation de la réplication en mode parallèle lors de la réplication asynchrone des données entre deux clusters Galera.
  • Ajout à l'outil mariadb-dump de la possibilité de spécifier des masques (par exemple, «database_*»), en utilisant l'option «-L» (—wildcards).
  • Suppression de l'exigence d'unicité des identifiants des clés étrangères (foreign key) dans le contexte de toute la base de données (il suffit de l'unicité au niveau de la table).
  • Suppression des limites du niveau d'imbrication des structures dans les fonctions travaillant avec JSON (la limite JSON_DEPTH_LIMIT, qui était précédemment de 32, a été supprimée).
  • Ajout de la table TRIGGERED_UPDATE_COLUMNS dans le schéma INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), montrant les colonnes modifiées lors de l'activation d'un déclencheur.
  • Dans la table PARAMETERS du schéma INFORMATION_SCHEMA, une colonne PARAMETER_DEFAULT a été implémentée, contenant les valeurs par défaut des paramètres des procédures stockées.
  • Suppression des variables big_tables, large_page_size et storage_engine, précédemment déclarées obsolètes.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster