Depuis janvier 2022, ClusterControl v1.9.2 a introduit la prise en charge de la dernière version de MariaDB — version 10.6. MariaDB 10.6, sortie en juillet 2021, sera prise en charge pendant les quatre prochaines années ou précisément jusqu'en juillet 2026.
Dans cet article, nous mettrons en évidence les principales fonctionnalités de MariaDB 10.6.
DDL atomique (langage de définition de données)
La première fonctionnalité que nous aborderons est Atomic DDL. Par définition, "atomique" signifie soit que l'opération est réussie et consignée dans les journaux binaires, soit qu'elle est complètement inversée. À partir de MariaDB 10.6.1, MariaDB a amélioré la lisibilité des opérations du DDL en rendant la plupart d'entre elles atomiques tandis que les autres sont à l'abri des pannes, même si le serveur tombe en panne lors de l'exécution d'une opération. Atomic et Crash-safe ont tous deux été développés pour fonctionner avec tous les moteurs de stockage, à l'exception du moteur de stockage S3 et du moteur de partitionnement, qui sont toujours en cours de développement.
Dans cette version, ALTER TABLE, RENAME TABLE, CREATE TABLE, DROP TABLE, DROP DATABASE et leurs instructions DDL associées sont désormais prêtes pour l'atomique. La liste complète des autres opérations Atomic DDL peut être trouvée ici. L'avantage de la nouvelle implémentation atomique et anti-crash est que le serveur MariaDB est devenu beaucoup plus stable, sans parler de sa fiabilité, même dans des environnements instables.
Syntaxe SQL
En ce qui concerne la catégorie Syntaxe SQL, quelques nouvelles fonctionnalités ont été ajoutées. Le premier que nous allons voir est :
SÉLECTIONNER... DÉCALER... RÉCUPÉRER
La clause OFFSET nous permettra de renvoyer uniquement les segments d'un jeu de résultats qui arrivent après un décalage défini. D'autre part, la clause FETCH limite le nombre de lignes à renvoyer. Qu'il s'agisse d'un ROW au singulier ou d'un ROWS au pluriel, les deux peuvent être utilisés après les clauses OFFSET et FETCH car ils n'ont aucun impact sur les résultats.
PASSER VERROUILLÉ
Peut-être que certains d'entre nous connaissent cette syntaxe puisqu'elle a été importée et adaptée de MySQL. Avec SKIP LOCKED, nous pourrions ignorer toutes les lignes verrouillées lors de l'exécution des opérations SELECT ou UPDATE. C'est certainement une fonctionnalité utile, en particulier pour les applications qui permettent à plusieurs utilisateurs de réserver des ressources limitées telles que des chambres d'hôtel, des sièges d'avion, des billets de concert, etc.
Index ignorés
Les index ignorés sont similaires à la fonctionnalité "index invisibles" de MySQL 8. Tous les index visibles et maintenus mais non utilisés par l'optimiseur peuvent être définis comme des index ignorés. Cela peut être très utile lors des tests pour voir quelles surfaces si nous supprimons un index avant de le supprimer. En cas de problème, nous pourrions le réactiver instantanément (en marquant l'index IGNORED/NOT IGNORED).
JSON_TABLE
Cette fonction de table est également importée de MySQL, où elle pourrait transformer des données ou des documents JSON en une forme relationnelle. Dans cette version, MariaDB a activé une vue de table dans les données JSON stockées dans la base de données MariaDB, et en utilisant SQL, toutes les requêtes seront renvoyées sous forme de table normale.
Compatibilité Oracle
MariaDB a été le pionnier dans le monde des bases de données open source qui a ajouté la compatibilité PL/SQL. À partir de MariaDB 10.3, de nombreuses syntaxes et fonctions ont été ajoutées pour faciliter la migration d'Oracle vers MariaDB. Comme pour MariaDB 10.6, les fonctionnalités suivantes sont introduites pour rendre MariaDB plus compatible PL/SQL :
-
Les sous-requêtes anonymes dans une clause FROM (pas de clause AS) sont autorisées en mode ORACLE
-
ADD_MONTHS() ajouté
-
fonction pour ajouter/soustraire des mois d'une valeur de date donnée.
-
-
TO_CHAR() ajouté
-
prend en charge NUMBER, DATE, DATETIME, TIMESTAMP, etc. en tant que paramètres et renvoie une valeur TEXT formatée/convertie
-
-
SYS_GUID() ajouté
-
similaire à la fonction UUID dans MariaDB
-
-
MINUS est mappé sur EXCEPT dans UNION
-
La fonction ROWNUM renvoie le nombre actuel de lignes acceptées dans le contexte actuel
Réplication, Galera et Binlog
Dans cette catégorie, MariaDB a introduit binlog_expire_logs_seconds comme une forme d'alias pour expire_logs_days, ce qui signifie que toute modification apportée à l'un d'entre eux sera automatiquement répercutée sur l'autre. De plus, binlog_expire_logs_seconds accepte une précision de 1/1000000 jours. Ceci est exceptionnellement utile dans les écritures à volume élevé sur le maître et lorsque l'environnement dispose d'un espace disque limité.
En plus de cela, MariaDB a également introduit les variables système wsrep_mode. Cette variable active les fonctionnalités WSREP qui ne font pas partie du comportement par défaut comme BINLOG_ROW_FORMAT_ONLY, DISALLOW_LOCAL_GTID, REQUIRED_PRIMARY_KEY, REPLICATE_ARIA, REPLICATE_MYISAM, STRICT_REPLICATION.
Schéma du système
La fonctionnalité suivante est sys_schema, une collection de vues, de fonctions et de procédures. Il ne fait aucun doute que sys_schema aide les administrateurs de base de données et les développeurs de nombreuses manières lors de l'interprétation des données ; beaucoup d'informations et d'informations de diagnostic pourraient en être recueillies. sys_schema est non seulement utilisé pour résoudre les problèmes de performances, mais également pour aider à gérer efficacement les ressources. Heureusement, ceci est maintenant disponible dans MariaDB 10.6.
Schéma d'informations
La nouvelle fonctionnalité ajoutée dans cette catégorie est INFORMATION_SCHEMA.KEYWORDS et INFORMATION_SCHEMA.SQL_FUNCTIONS. La table KEYWORDS contient environ 694 lignes de mots clés MariaDB, tandis que la table SQL_FUNCTIONS contient environ 234 lignes de fonctions MariaDB. Avec ces deux tables, nous pouvons maintenant obtenir le schéma d'information qui s'y rapporte au cas où nous en aurions besoin.
Conclusion
En plus de ces nouvelles fonctionnalités introduites dans MariaDB 10.6, de nombreuses autres améliorations ont été apportées qui n'ont pas été abordées dans cet article. Bien que bon nombre de ces fonctionnalités aient été extraites de MySQL, ces ajouts sont toujours très bénéfiques pour les utilisateurs.
Comme mentionné précédemment, ClusterControl prend actuellement en charge MariaDB 10.6. Avec ClusterControl, vous pouvez facilement passer à la dernière version technologique sans stress. Si vous n'êtes pas encore familiarisé avec ClusterControl, vous pouvez l'évaluer gratuitement pendant 30 jours - aucun CC requis.
Pour rester au courant de toutes les dernières nouvelles et des meilleures pratiques pour les bases de données open source les plus populaires, n'oubliez pas de nous suivre sur Twitter et LinkedIn, et abonnez-vous à notre newsletter pour les mises à jour.