Version stable de MariaDB 10.6

Après un an de développement et trois versions préliminaires, la première version stable de la nouvelle branche du SGBD MariaDB 10.6 a été publiée, au sein de laquelle est développée une branche de MySQL qui maintient la rétrocompatibilité et se distingue par l'intégration de moteurs de stockage supplémentaires et des capacités avancées. L'accompagnement de la nouvelle succursale sera assuré pendant 5 ans, jusqu'en juillet 2026.

Le développement de MariaDB est supervisé par la Fondation MariaDB indépendante, à la suite d'un processus de développement totalement ouvert et transparent, indépendant des fournisseurs individuels. MariaDB est fourni en remplacement de MySQL dans de nombreuses distributions Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) et a été implémenté dans des projets aussi importants que Wikipedia, Google Cloud SQL et Nimbuzz.

Principales améliorations de MariaDB 10.6 :

  • L'exécution atomique des expressions « CREATE TABLE|VIEW|SEQUENCE|TRIGGER », « ALTER TABLE|SEQUENCE », « RENAME TABLE|TABLES », « DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE » est assurée (soit l'expression est complètement terminé ou tout est remis dans son état d'origine). Dans le cas d'opérations « DROP TABLE » supprimant plusieurs tables à la fois, l'atomicité est assurée au niveau de chaque table individuelle. Le but du changement est d'assurer l'intégrité en cas de panne du serveur lors d'une opération. Auparavant, après un crash, des tables et des fichiers temporaires pouvaient subsister, la synchronisation des tables dans les moteurs de stockage et les fichiers FRM pouvait être perturbée et des tables individuelles pouvaient rester non renommées lorsque plusieurs tables étaient renommées à la fois. L'intégrité est assurée par la tenue d'un journal de récupération d'état, dont le chemin peut être déterminé grâce à la nouvelle option « —log-ddl-recovery=file » (ddl-recovery.log par défaut).
  • La construction "SELECT ... OFFSET ... FETCH" définie dans le standard SQL 2008 a été implémentée, permettant d'afficher un certain nombre de lignes à partir d'un offset spécifié, avec la possibilité d'utiliser le paramètre "WITH TIES" pour attachez une autre valeur suivante. Par exemple, l'expression « SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES » diffère de la construction « SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1 » en produisant un élément supplémentaire dans la queue. (au lieu de 3, 4 lignes seront affichées).
  • Pour le moteur InnoDB, la syntaxe « SELECT ... SKIP LOCKED » a été implémentée, qui permet d'exclure les lignes pour lesquelles un verrou ne peut pas être défini (« LOCK IN SHARE MODE » ou « FOR UPDATE »).
  • La possibilité d'ignorer les index a été implémentée (dans MySQL 8, cette fonctionnalité est appelée « index invisibles »). Le marquage d'un index à ignorer se fait à l'aide de l'indicateur IGNORED dans l'instruction ALTER TABLE, après quoi l'index reste visible et mis à jour, mais n'est pas utilisé par l'optimiseur.
  • Ajout de la fonction JSON_TABLE() pour convertir les données JSON sous forme relationnelle. Par exemple, un document JSON peut être transformé pour être utilisé dans le contexte d'une table, qui peut être spécifiée dans un bloc FROM dans une instruction SELECT.
  • Compatibilité améliorée avec le SGBD Oracle : ajout de la prise en charge des sous-requêtes anonymes à l'intérieur du bloc FROM. La construction MINUS a été implémentée (équivalent à EXCEPT). Ajout des fonctions ADD_MONTHS(), TO_CHAR(), SYS_GUID() et ROWNUM().
  • Dans le moteur InnoDB, l'insertion dans des tables vides a été accélérée. Le format de chaîne COMPRESSED est défini par défaut en mode lecture seule. Le schéma SYS_TABLESPACES a remplacé SYS_DATAFILES et reflète directement l'état du système de fichiers. La prise en charge de l'écriture différée est fournie pour l'espace table temporaire. La prise en charge de l'ancien algorithme de somme de contrôle, qui a été conservé pour des raisons de compatibilité avec MariaDB 5.5, a été interrompue.
  • Dans le système de réplication, la taille de la valeur du paramètre master_host a été augmentée de 60 à 255 caractères et celle de master_user à 128. La variable binlog_expire_logs_seconds a été ajoutée pour configurer le délai d'expiration du journal binaire en secondes (auparavant, le temps de réinitialisation était déterminé uniquement en jours via la variable expire_logs_days).
  • Le mécanisme de réplication multi-maître synchrone Galera implémente la variable wsrep_mode pour configurer les paramètres de l'API WSREP (Write Set REPlication). Conversion autorisée de Galera des communications non chiffrées vers TLS sans arrêter le cluster.
  • Le schéma sys-schema a été implémenté, qui contient un ensemble de vues, de fonctions et de procédures pour analyser les opérations de base de données.
  • Ajout de tables de service pour analyser les performances de réplication.
  • Les vues INFORMATION_SCHEMA.KEYWORDS et INFORMATION_SCHEMA.SQL_FUNCTIONS ont été ajoutées à l'ensemble des tables d'informations, affichant une liste de mots-clés et de fonctions disponibles.
  • Les référentiels TokuDB et CassandraSE ont été supprimés.
  • Le codage utf8 a été déplacé de la représentation sur quatre octets utf8mb4 (U+0000..U+10FFFF) vers la représentation sur trois octets utf8mb3 (couvre la plage Unicode U+0000..U+FFFF).
  • Ajout de la prise en charge de l'activation des sockets dans systemd.
  • Le plugin GSSAPI a ajouté la prise en charge des noms de groupe et SID Active Directory.
  • Ajout d'une vérification de la présence du fichier de configuration $MARIADB_HOME/my.cnf en plus de $MYSQL_HOME/my.cnf.
  • De nouvelles variables système binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode et Innodb_buffer_pool_pages_lru_freed ont été implémentées.

Source: opennet.ru

Ajouter un commentaire