La version 11.8.2 du SGBD MariaDB a été publiée, marquée comme le premier release stable de la branche 11.8. La branche MariaDB 11.8 est classée parmi les releases avec support à long terme et sera maintenue pendant au moins 5 ans. En même temps, la version 12.0.1 de MariaDB est disponible, ayant le statut de candidate release.
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 11.8 par rapport à la précédente release LTS 11.4 :
- Des travaux du projet MariaDB Vector, qui développe des fonctionnalités pour la recherche vectorielle, utilisée dans les systèmes d'apprentissage machine, ont été intégrés. Un support intégré pour le type de données VECTOR, ainsi que les fonctions VEC_DISTANCE_EUCLIDEAN(), VEC_DISTANCE_COSINE() et VEC_DISTANCE() pour le calcul de la similarité des vecteurs, a été mis en œuvre, ainsi que les fonctions VEC_FromText() et VEC_ToText() pour la conversion entre les représentations binaire et textuelle des vecteurs. Des optimisations pour le traitement des vecteurs utilisant les extensions SIMD des CPU Intel (AVX2 et AVX512), ARM et IBM Power10 ont été réalisées. Dans les tests effectués, les performances des requêtes vectorielles dans MariaDB surpassent celles de Redis, pgvector, qdrant et weaviate.

- Le problème de 2038 a été résolu. La valeur limite du type TIMESTAMP a été augmentée de 2038 à 2106.
- Par défaut, l'encodage Unicode (utf8mb4) avec un support complet des émojis a été mis en place au lieu de latin1. Les propriétés de localisation « Collation », qui définissent les règles de tri et de comparaison prenant en compte le sens des caractères, ont été mises à jour à la version UCA 14.0.0.
- Un nouveau plugin d'authentification par mot de passe PARSEC (Password Authentication with Response Signed by Elliptic Curves) a été ajouté, utilisant la fonction PBKDF2 pour générer le hachage du mot de passe et vérifiant les réponses en utilisant une clé publique basée sur le schéma de signature numérique ed25519.
- L'authentification lors de l'accès au SGBD depuis le système local a été améliorée, utilisant un socket UNIX.
- Dans mariadb-dump et mariadb-import, le support de la création et de la restauration de sauvegardes multithread a été ajouté. Le parallélisme est appliqué tant pour le dump d'une grande base de données que pour la sauvegarde simultanée de plusieurs bases de données.
- La performance de réplication a été nettement améliorée. Pour accélérer la réception de très grandes transactions, un mécanisme de basculement des segments de journal binaire (binlog) a été mis en place, permettant d'éviter les opérations de copie de fichiers consommatrices de ressources. Pour réduire le redémarrage après des pannes, un retour arrière des transactions (rollback) en mode asynchrone a été assuré. Une configuration « slave_replication_delay_abort_timeout » a été ajoutée, permettant d'annuler automatiquement les transactions bloquant la réplication trop longtemps.
- Les outils de surveillance ont été étendus. Des colonnes supplémentaires pour l'analyse des performances et le diagnostic des problèmes ont été ajoutées aux tables de statistiques.
- Une table USERS avec des informations sur les utilisateurs, les restrictions appliquées et la durée de validité de leurs mots de passe a été ajoutée.
- Les commandes « FLUSH GLOBAL STATUS », « REPAIR TABLE … FORCE » et « SHOW CREATE SERVER » ont été ajoutées.
- La possibilité de renvoyer des valeurs de type ROW à partir de procédures stockées a été ajoutée.
- Améliorée la compatibilité avec les bases de données Oracle lors de l'utilisation de séquences (sequence). L'opération « CREATE SEQUENCE … AS » peut désormais être utilisée avec tous les types entiers, y compris « BIGINT UNSIGNED ».
- Nouvelles fonctions pour la génération d'UUID — UUID_v7 et UUID_v4 — ont été ajoutées.
- La fonction FORMAT_BYTES a été ajoutée pour convertir un nombre de bytes en un format lisible (par exemple, FORMAT_BYTES(1000000000) renverra 953.67 MiB).
- La possibilité de limiter l'espace disque utilisé pour les fichiers temporaires et les tables temporaires a été ajoutée. Les paramètres max_tmp_session_space_usage et max_tmp_total_space_usage ont été ajoutés pour définir des limites, en lien avec un ou tous les utilisateurs.
- Dans l'optimiseur de requêtes, le traitement des opérations UPDATE/DELETE sur une seule table a été accéléré. Les optimisations pour réduire les codages à un sous-ensemble plus petit de caractères sont activées par défaut. Les requêtes avec des expressions « SUBSTR(col, 1, n) = const_str » ont été accélérées. Le support pour l'optimisation des colonnes virtuelles a été ajouté.
Source : opennet.ru

